Rails 3.1 select可以将对象作为值

时间:2011-09-10 08:00:57

标签: ruby-on-rails

是否可以选择一个完整的Object作为值。

代码:

模型 应用程序/模型/ pc.rb

class Pc < Device
  has_many :gendevs
  accepts_nested_attributes_for :gendevs, :reject_if => lambda { |a| a[:name].blank? },:allow_destroy => true
end   

应用程序/模型/ gendev.rb

class Gendev < Device
  belongs_to :pc
end

(Gendevs就像扫描仪,读卡器等)。 鉴于Gendevs在数据库中可用,我想要一个嵌套选择,给我一个对象的属性。

查看:

应用程序/视图/ PCS / _form.html.erb

....
<% f.fields_for :gendevs do |gdbuilder| %>
<%= gdbuilder.select :gendevs, @gendevs.map { |g| [g.name + '/' + g.kind,g] } %>
<% end %>

这不起作用,所以我的问题是,我该怎么做呢。有没有办法序列化g的参数,或者我该怎么做?

1 个答案:

答案 0 :(得分:0)

使用g.id代替g。

<% f.fields_for :gendevs do |gdbuilder| %>
<%= gdbuilder.select :gendevs, @gendevs.collect { |g| [g.name + '/' + g.kind, g.id] } %>
<% end %>