我有盒子和球。球在箱子裏。球可以是紅色和綠色。Rails3:如何設置默認條件爲has_many
class Box < ActiveRecord::Base
has_many :balls
end
class Ball < ActiveRecord::Base
belongs_to :box
scope :green, where(:color => "green")
end
我想只用綠色的球設置has_many。我知道finder_sql方法存在,但我不知道如何通過範圍設置。
我想那下面的例子是等價的:
@orders = @box.balls
@orders = @box.balls.green
default_scope在整個模型上起作用。但是我需要只對has_many關聯起作用的選項。我想@ box.balls以綠色返回所有球。我想Ball.all所有的球返回綠色和紅色。 – petRUShka 2010-07-12 17:03:46
不要使用它。每次我用'default_scope'我都後悔了。請注意,與此錯誤特徵相關的[很多潛在的槍支](http://pragdave.blogs.pragprog.com/pragdave/2012/03/be-careful-using-default_scope-and-order.html) 。 – 2013-05-15 02:44:10