新手问题 nested attributes (belongs_to) 如何写 select?

itsvoid · 2012年09月20日 · 最后由 itsvoid 回复于 2012年09月20日 · 2606 次阅读

我使用的是 mongoid,场景类似于: class Person ... belongs_to address accepts_nested_attributes_for :address attr_accessible :address end

然后 address 这个 class has_many person。我的问题是我想写一个 form 的 select,我的代码如下:

<%= form_for @person do |f|%> <%= f.fields_for :address do |address_field|%> <%= address_field.select :street, Address.all %> <% end %> <% end %>

现在的问题是,select 无法显示。而我直接用: f.select 或者 f.collection_select 可以显示 select,但是无法写入 address_attributes。

求解如何将 select 用于 belongs_to 场景。

看下文档里面的这个例子,传递的参数是 post[category_id],option 里面显示的是 Category id 和 name

collection_select(:post, :category_id, Category.all, :id, :name, {:disabled => lambda{|category| category.archived? }})

<select name="post[category_id]">
  <option value="1" disabled="disabled">2008 stuff</option>
  <option value="2" disabled="disabled">Christmas</option>
  <option value="3">Jokes</option>
  <option value="4">Poems</option>
</select>

#1 楼 @diudiutang 我用过这个 collection_select,生成的 html 结构也和文档一样, 但是父文档的 address_id 却写不进去,依然是 nil

#1 楼 @diudiutang 找到问题了,我设置了 attr_accessible,所以需要另外加上 address_id。。。我的问题是,没有报错,我在哪里追踪这个问题呢?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号