Ruby on rails 如何在一个表单中接受两个模型的属性?
我是一个Rails新手,试图通过ModelVault“new”表单接受模型地址的嵌套属性,但我得到了一个未定义的方法“build”,用于nil:NilClass ERROR 我有两个模型,这里有一个Vault模型:Ruby on rails 如何在一个表单中接受两个模型的属性?,ruby-on-rails,Ruby On Rails,我是一个Rails新手,试图通过ModelVault“new”表单接受模型地址的嵌套属性,但我得到了一个未定义的方法“build”,用于nil:NilClass ERROR 我有两个模型,这里有一个Vault模型: class Vault < ActiveRecord::Base has_one :address, dependent: :destroy accepts_nested_attributes_for :address, allow_destroy: true end
class Vault < ActiveRecord::Base
has_one :address, dependent: :destroy
accepts_nested_attributes_for :address, allow_destroy: true
end
这是my_form.html.erb Vault partial的一部分,我试图在其中捕获地址模型的信息:
<%= f.fields_for :address do |builder| %>
<%= builder.label :stnumber, "St. Number" %></br>
<%= builder.text_field :stnumber %>
<% end %>
请检查aha!,这就解决了问题。感谢您的及时回复。添加了更好的说明!请检查,这肯定会帮助你在漫长的道路上。希望有帮助:)是的,从长远来看,这肯定会有帮助。。我确实计划在将来有很多合作。我会发现自己也处于同样的困境。
def new
@vault = Vault.new
@vault.address.build
end
<%= f.fields_for :address do |builder| %>
<%= builder.label :stnumber, "St. Number" %></br>
<%= builder.text_field :stnumber %>
<% end %>
#vault.rb
class Vault < ActiveRecord::Base
has_one :address, dependent: :destroy
#Other codes goes here
end
#address.rb
class Address < ActiveRecord::Base
belongs_to :vault
#other code goes here.
end
v = Vault.new
address = v.address.build
# this one will work only for has_many association.
address = v.build_address
#this one will work for your has_one association