如何通过另一个资源为一个资源编写named_scope?

时间:2010-11-24 04:13:45

标签: ruby-on-rails ruby named-scope

我有一个belongs_to锻炼的群组资源。锻炼可以是公共的或私人的,并且由锻炼表中的share列指定(锻炼是一个整数,如果锻炼是公开的,则包含1)。

我正在尝试呼叫与公共训练相关的所有组。我认为这需要通过named_scope完成,但我不确定语法。

在groups_controller中我假设我会打电话:

@groups = Group.public_groups.all

我应该如何在Group.rb中编写named_scope? (我在轨道2.3.8)

named_scope :public_groups, ...

1 个答案:

答案 0 :(得分:1)

这是一种方法:

class Group < ActiveRecord::Base
  belongs_to :workout
  named_scope :public, {:conditions => 'workouts.share = 1', :include => :workout}
end

@groups = Group.public.all