使用ActiveRecord查询

时间:2015-10-06 12:33:29

标签: ruby-on-rails ruby-on-rails-4 rails-activerecord

我有一个下拉列表,我试图填充ActiveRecord的结果。我想我不明白如何访问我检索的值,因为下面的代码用

这样的值填充我的下拉列表

#<Product:0x007f1f488565b0>这显然不是我想要的。

<%= f.select :accessory, options_for_select(Product.select(:item_number, :id).where(:accessory=> 't') {|c| [ c.item_number, c.id ] }), {include_blank: true}, { :class => 'form-control'} %>

如何使用商品编号和ID填充下拉列表?此查询中不涉及任何关系。我只想要一个标有“&#34; t&#34;用于配件。

1 个答案:

答案 0 :(得分:0)

你是如此接近: - )

options_for_select的参数应该是一个具有可枚举对象的对象,它们响应:first和:last

你正在传递

Product.select(:item_number, :id).where(:accessory=> 't') 

作为参数。 但我的猜测是你要通过

Product.select(:item_number, :id).where(:accessory=> 't')
  .map{|c| [ c.item_number, c.id ] })

你只是忘了把'地图'。

Ruby允许你将块传递给任何方法,这就是你没有得到任何警告或错误的原因,但是这个块将被忽略。