Rails – 我无法使用嵌套表单在我的用户表单上显示位置

我无法使用嵌套表单显示belogns给用户的位置。

我想创建用户并在位置模型中保存地址,城市,州等,并在用户模型中保存名称,用户名和电子邮件。

我在控制台上没有错误。 但是字段(选择或下拉列表,text_fields等)没有显示出来。 数据库有记录。

这是我的user.rb模型:

class User < ActiveRecord::Base has_many :locations accepts_nested_attributes_for :locations end 

这是我的location.rb模型:

 class Location < ActiveRecord::Base belongs_to :user end 

这是我的用户表单:

 

prohibited this user from being saved:





在视图中添加以下行:

 <% f.object.locations.build if f.object.locations.empty? %> <%= f.fields_for :locations do |location| %> .... 

您也可以在控制器中添加此逻辑,但我会将其添加到视图中。 为什么? 因为如果您希望在另一个控制器中重用此表单,则必须复制代码。

如果您想在将来添加多个位置,我建议您观看这两个导轨:

 http://railscasts.com/episodes/196-nested-model-form-part-1 http://railscasts.com/episodes/197-nested-model-form-part-2