我的查看代码如下:
<%= b.input :city, as: :select, collection: Lov.where(:remarks => 'lov_city').select('id').select('lov_content'), placeholder: 'Enter City', label: false %>
呈现代码后,在我的视图中显示的数据列表为
#<Lov:0x3241351>
..实际上,Lov表是与其他任何表都不相关的参考表,当我在Rails控制台(rails c)中运行并运行相同的“
Lov.where(:remarks => 'lov_city').select('id').select('lov_content')
”时,会显示数据,但视图不同。从Rails控制台:
jruby-1.7.16.1 :001 > Lov.where(:remarks => 'lov_city').select('id').select('lov_content')
lovs Columns (6.0ms) SHOW FULL COLUMNS FROM `lovs`
Lov Load (8.0ms) SELECT id, lov_content FROM `lovs` WHERE `lovs`.`remarks` = 'lov_city'
=> [#<Lov id: 229, lov_content: "Ayer Baloi">, #<Lov id: 230, lov_content: "Ayer Hitam">, #<Lov id: 231, lov_content: "Ayer Tawar 2">, #<Lov id: 232, lov_content: "Ayer Tawar 3">, #<Lov id: 233, lov_content: "Ayer Tawar 4">
最佳答案
如果要获取某些选定的列,请使用pluck
Lov.where(:remarks => 'lov_city').pluck(:id, :lov_content)
关于mysql - 如何解析ActiveRecord查询以产生集合?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27497683/