Campaign
所有者 によって作成された3 つのモデル があり、 によってUser
表される多くのメンバー (ユーザー) があるとしますMembership
。
最初のキャンペーンはこのステートメントで設定されます
belongs_to :user
has_many :memberships
has_many :users, :through => :memberships
accepts_nested_attributes_for :memberships
このステートメントを持つ 2 番目のユーザー
has_many :memberships
has_many :campaigns, :through => :memberships
3番目のメンバーシップ
belongs_to :user
belongs_to :campaign
ここで、キャンペーンの作成時にネストされたフォームを定義して、キャンペーンの作成者がキャンペーンの一部のメンバーであるすべてのユーザーから選択できるようにしたいと考えています。だから私は設定した
= form_for @campaign do |f|
= f.text_field :owner, placeholder: "Example Owner", class: "xxlarge"
- @users.each_value do |value|
= f.fields_for :memberships do |ff|
= ff.check_box :user_id
コントローラーのメソッドでどこ@users
に設定されているかnew
Campaign
@users = User.all
問題は、エラーメッセージがあることです
113 ミリ秒で 500 内部サーバー エラーを完了
ActionView::Template::Error (Illegal nesting: nesting within plain text is illegal.):
20: = f.text_field :owner, placeholder: "Example Owner", class: "xxlarge"
21:
22: @users.each_value do |value|
23: = f.fields_for :memberships do |ff|
24: = ff.check_box :user_id
私はレールにまったく慣れていないので、どこが間違っているのかわかりません