我有一个表单,要求将数据库中的所有对象拉入选择字段。我已经查看了其他有关collection_select的问题,但似乎无法弄清为什么我收到未定义的方法错误。
# Loan Application Model
class LoanApplication < ActiveRecord::Base
has_many :loan_securities, :dependent => :destroy
accepts_nested_attributes_for :loan_securities, :allow_destroy => true
end
# Loan Security Model
class LoanSecurity < ActiveRecord::Base
has_one :security_type
accepts_nested_attributes_for :security_type
end
# Security Type Model
class SecurityType < ActiveRecord::Base
belongs_to :loan_security
end
每个贷款申请将具有许多贷款证券,并且每个贷款证券都将具有一种证券类型。我已经为数据库植入了一些安全类型。到目前为止,该表格与贷款申请到贷款担保的关系很好。
<%= nested_form_for [@business, @loanapplication], method: :put, :class => "form-horizontal", url: wizard_path, :html => { :multipart => true } do |f| %>
<%= f.fields_for :loan_securities, :wrapper => true do |loan_security| %>
<%= loan_security.collection_select(:security_type_id, SecurityType.all, :id, :name) %>
<% end %>
<% end %>
在loanapplications_controller中,我添加了有关贷款安全性和安全性类型的参数
loan_securities_attributes: [:id, :_destroy, security_type_attributes: [:security_type_id, :name]]
错误本身:
undefined method `security_type_id' for #<LoanSecurity:xxxxxxx>
做这个:
<%= loan_security.collection_select( :security_type_id, ::SecurityType.all, :id, :name) %>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句