以下幾個不同的導遊,我仍然與其他酒店的形式嵌套在一個模型地址越來越麻煩了。 我可以得到工作表之前創建分貝行爲酒店,但沒有一個爲地址。在這條線NilClass :我添加 後@ hotel.addrs.build我的控制,我得到一個錯誤(滑軌4.0.1)「HAS_ONE」嵌套模式不工作
未定義的方法`建設」爲爲零。
我的代碼:
hotels.rb
class Hotel < ActiveRecord::Base
has_one :addrs
accepts_nested_attributes_for :addrs
end
addr.rb
class Addr < ActiveRecord::Base
belongs_to :hotel
end
hotels_controller.rb
def new
@hotel = Hotel.new
@hotel.addrs.build
end
...
def hotel_params
params.require(:hotel).permit(:name, :rate, addrs_atributes: [:street, :build])
end
路線.RB
resources :hotels do
resources :addr
end
_form.erb.html
... </div>
<%= fields_for :addr do |l| %>
Street <%= l.text_field :street %><br>
No. <%= l.number_field :build %>
<% end %>
<div class="actions">
<%= f.submit %>
</div>
請有什麼建議可能是錯在這裏。 謝謝。
不應該是'has_one:addr' - 複數對'has_many'而不是'has_one'更合乎邏輯。當然,自從我使用Rails以來,這已經有一段時間了,這可能是瘋狂的談話...... – glenatron