通过named_scope删除包含空白字段的记录

时间:2010-12-14 18:49:23

标签: ruby-on-rails ruby model-view-controller named-scope

我创建了一个Ruby on Rails应用程序,允许用户跟踪锻炼。我允许他们私人或公开锻炼,通过将整数1传递给Workout.share来表示 现在我试图显示那些public_workouts的某些子集。我通过named_scope调用所有public_workouts

# workouts_controller.rb
@workouts = Workout.public_workouts.all

...

# workout.rb
named_scope :public_workouts, :conditions => {:share => 1}

Workout表还有一个rounds列。我想将public_workouts的输出限制为仅包含workout.rounds内容的记录。换句话说,如果workout.rounds是空白,那么我不希望包括在内。
这样做的最佳方式是什么?

更新:

我应该提到我使用的是rails 2.3.8

1 个答案:

答案 0 :(得分:1)

我认为它应该有效:

named_scope :published, lambda { 
{ :conditions =>
  ["workouts.rounds IS NOT NULL AND workouts.share = ?", 1]
}}