accepts_nested_attributes_for と fields_for で生成したフォームに値を設定する方法のメモ

accepts_nested_attributes_for と fields_for で生成したフォームに値を設定する方法のメモ。

User Model
class User < ActiveRecord::Base
has_many :posts
accepts_nested_attributes_for :posts
end

Post Model
class Post < ActiveRecord::Base
belongs_to :users
end

とModelを定義した場合。

Controller
def entry
@users = User.new

posts_attributes = []
2.time |n| do
# 未入力を作る場合はこっち
# @event_users.event_user_joins.build

# 初期値
posts_attributes_attributes.push({title: "タイトル#{n}"})
end

@users.posts_attributes = posts_attributes
end


View
= form_for(@users) do |f|
dl
= f.fields_for :posts do |pf|
dt
= pf.object.title # タイトルを表示
dd
= pf.text_field :title # 入力フォーム


参考サイト
ネストされたモデル(親子関係を持つモデル)で、子を表示、編集するには
複数の子レコードを作成・更新する. accepts_nested_attributes_for
スポンサーサイト

トラックバック

コメント

コメントを残す

Secret


プロフィール

U2K

Author:U2K
いろいろプログラムに関しての覚え書きをちょくちょくと書いていきます。

オススメ










オススメ

忍者AdMax

u2k on Twitter

最近の記事