LoginSignup
0
0

More than 3 years have passed since last update.

フォームオブジェクトで結びついている要素を全て初期値として表示する方法

Posted at

[前提] フォームオブジェクトを使ってitemsテーブルとtagsテーブルの値を同ページで保存している。
[現状]コントローラのeditメソッドで
@item=Item.find(params[:id])と記述しているため、itemsテーブルに保存されている値の初期値のみが表示されている。ハッシュタグのフォームにも初期値を出したい。
[理想図]
スクリーンショット 2020-09-14 23.39.31.png

[方法]

item_controller
def edit
  @item = Item.find(params[:id])
   @tag = @item.tags 
end

と一つの商品に紐つぐ複数タグの要素をもつ@tagを定義

edit.html.erb

<% @tag.each do |t|%>
   <div class="weight-bold-text">
     タグ(スペースで区切って複数投稿できます)
   <%= f.text_field :tag_name, class:"items-text", id:"item- 
   tag", value:t.tag_name  %>
   </div>
 <%end%>

@tagという配列の中に複数のタグが入ってるので、eachメソッドで一つ一つ出す。
「t」の中のカラム名「tag_name」の値をvalue属性としてフォームの中に配置する。

以上です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0