【发布时间】:2016-02-10 12:23:55
【问题描述】:
我正在创建一个应用程序,其中可以使用创建客户详细信息并允许根据可以提供所需服务的分支创建“推荐”的表单进行“提交”
class Submission < ActiveRecord::Base
has_many :referrals, :inverse_of => :submission, dependent: :delete_all
accepts_nested_attributes_for :referrals, :allow_destroy => true
end
class Referral < ActiveRecord::Base
belongs_to :submission
end
class Branch < ActiveRecord::Base
has_many :referrals
end
提交控制器:
def new
@submission = Submission.new
@submission.build_client
@submission.client.build_address
@submission.referrals.build
end
def submission_params
params.require(:submission).permit(:consent, :user_id, client_attributes:
[:client_id, :first_name,
address_attributes:
[:first_line, :second_line,]
],
referrals_attributes:
[:branch_id]
)
end
提交表格:
<%= form_for(@submission) do |f| %>
<%= f.fields_for :referrals do |referral| %>
<%= render 'referral_fields', f: referral %>
<% end %>
<% end %>
_referral_fields.html.erb:
<% Branch.all.where(referrable: true).each do |branch| %>
<label>
<%= check_box_tag 'branch_ids[]', branch.id %>
<%= branch.name %>
</label>
<% end %>
我想要的是为每个可引用分支设置复选框。当一个分支被勾选并创建提交时,将为该分支创建一个推荐。但是,当我提交表单时,我收到“推荐人不能为空”的验证错误。知道为什么这不起作用吗?
非常感谢任何帮助
【问题讨论】:
-
尝试将
<%= check_box_tag 'branch_ids[]', branch.id %>更改为<%= f.check_box 'branch_id', branch.id %> -
嗨。刚刚试了一下,还是一样的错误
-
很抱歉没有完全得到您的更改。我得到“1:Fixnum 的未定义方法‘合并’”
标签: ruby-on-rails forms ruby-on-rails-4 activerecord