Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在一个表单中接受两个模型的属性?_Ruby On Rails - Fatal编程技术网

Ruby on rails 如何在一个表单中接受两个模型的属性?

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

我是一个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
这是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