好的,所以我有一个范围可以找到位置等于参数的模型:
class EatTile < ActiveRecord::Base
attr_accessible :category, :link, :map, :name, :num_votes, :position, :price, :rating
scope :pos, lambda{|position| {:conditions => ["position = ?", position]}}
end
在我的控制器中,我有以下内容来获取我需要的瓷砖:
@tiles = EatTile.where("position > 0 AND position < 20")
我在想,如果我想获得位置为 1 的图块的名称,我可以在我的视图中调用这样的东西:
@tiles.pos(1).name
相反,我必须在 pos 调用和名称之间包含“first”。这是最好的方法吗?我是 Rails 新手,不想早早做错事。
另外,按照我上面的方式来做是否更快,或者在我看来,这样做会更好:
EatTile.pos(1).first.name
我认为我这样做的第一种方法更正确,因为它首先缩小了查询范围,但我不确定。
谢谢!