Ruby on rails Can';我不能让rails吃我需要的嵌套表单

Ruby on rails Can';我不能让rails吃我需要的嵌套表单,ruby-on-rails,ruby,nested-attributes,Ruby On Rails,Ruby,Nested Attributes,相关代码的完整范围如下所示 我的问题是,我正在尝试从中重建一些内容,以便在我的表单中为活动获取多个嵌套表单。每个活动都可以通过活动团队连接一个或多个团队。而且,活动依赖于客户端,没有客户端,它就不可能存在 # config/routes.rb resources :clients do resources :campaigns end 现在,使用上面的代码(我不想把这个问题弄得一团糟),我得到一个错误:无法批量分配受保护的属性:campaign\u team。当我添加attr\u acce

相关代码的完整范围如下所示

我的问题是,我正在尝试从中重建一些内容,以便在我的表单中为
活动
获取多个嵌套表单。每个
活动
都可以通过
活动团队
连接一个或多个团队。而且,
活动
依赖于客户端,没有客户端,它就不可能存在

# config/routes.rb
resources :clients do
  resources :campaigns
end
现在,使用上面的代码(我不想把这个问题弄得一团糟),我得到一个错误:
无法批量分配受保护的属性:campaign\u team
。当我添加
attr\u accessible:campaign\u team
时,我得到
未知属性:campaign\u team

我怎样才能让rails最终吃下这个表单,并且只与一个成员嵌套一个
activityteam
数组?我哪里做错了


(很抱歉,在这个表单上呆了三个小时,非常沮丧)

如果您只是添加现有的团队,您可以选择一个集合,然后添加

attr_accessible :teams_ids
另一方面,如果你需要创建团队,你需要

accept_nested_attributes_for :teams

(所有这一切都取决于您在
活动
类中设置了
有许多:团队,:通过=>:campaign\u团队

我已经解决了这个问题。在控制器中,我在控制器中进行了更改

def new
  @client = Client.find params[:client_id]
  @campaign = @client.campaigns.build
  @campaign.campaign_teams.build          # New line
end
然后将
new.html.haml
第15行更改为

=f.fields_for :campaign_teams do |b|

不,它工作正常。

您是否尝试过使用
:活动团队id
?Rails默认为外键的后缀
\u id
。。。也应该将输入名称更改为该名称。但问题是我甚至没有
:campaign\u team
。仅
:活动团队
-复数形式。问题是
活动团队
也为每个
团队
保存了有关需要在表单中设置的关系的附加信息。然后对两个级别执行相同的操作:
在活动中为:活动团队
接受嵌套的属性,和
attr\u可访问:活动团队中的团队id
。然后为活动团队实例嵌套表单,并为团队id.Nope选择一个select,仍然获得
无法批量分配受保护的属性:活动团队