从我读过的使用范围在Rails中查询模型直接相对于通过控制器去模型的实例变量(这是我怎么看?)作用域或实例变量
所以我有这个疑问在我的控制器
@animal_location = User.select(:town).map(&:town).uniq
["Cardiff", "Newport"]
,然后这个范围在我的模型
scope :uniq_towns, ->() {
select("town").group("town")
}
#<ActiveRecord::Relation [#<User id: nil, town: "Cardiff">, #<User id: nil, town: "Newport">]>
在我看来访问使用镇值我可以访问诸如
<% @animal_location.each do |loc| %>
<%= loc %>
<% end %>
,或者如果我使用的范围,并与@animal_location = User.uniq_towns
去,在我看来,我会用
<% @animal_location.each do |loc| %>
<%= loc.town %>
<% end %>
我的第一个问题是将我的范围是在这种情况更快,其次是我的范围正确的,因为我得到用户名:无作为哈希的一部分
感谢
我不认为范围化查询比普通查询更有效率。需要时他们只需要较少的打字就可以打电话。 – zwippie 2014-10-28 15:33:18