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,仍然获得无法批量分配受保护的属性:活动团队
。