我的查看代码如下:

<%= 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/

10-10 16:20