2011-04-25 53 views
0

我正在使用Rails 2.3.9應用程序,在這種情況下帖子是workouts。我正在嘗試獲得以下所有commentsworkouts打電話給某些帖子的所有評論

@workouts = Workout.today_only.all(:include => {:user => :memberships}, :conditions => ["workouts.public = '1' AND memberships.box_id = ?", @box.id], :order => "workouts.created_at DESC") 

我的聯想是正確的:

Workout has_many :comments 
Comment belongs_to :workout 

我該如何獲得在對created_at DESC下令那些specifc鍛鍊評論列表?

注意:today_only是一個named_scope,如果它是相關的,我可以發佈代碼。

+0

我建議創造那些條件更named_scopes和包括。現在你的代碼在同一行上有幾個抽象層次。 – kikito 2011-04-25 18:29:55

+0

是的,我同意。只需要做到這一點。 – bgadoci 2011-04-26 02:24:15

回答

0

在你的鍛鍊模式,添加:

has_many :comments, :order => 'created_at DESC' 

那麼你可以做:

Workout.today_only.all(:include => [:comments, {:user => :memberships}], ... 
+0

之後是什麼視圖代碼?理想情況下,我想在一個流中顯示所有評論。而不是去獲得每個鍛鍊,然後顯示每個鍛鍊的評論。 – bgadoci 2011-04-25 21:27:48

+0

您可以:@comments = Comment.all([「workout_id IN?」,@workouts]) - 但我會將該SQL放入Comment的類方法中。 – 2011-04-26 03:28:43

相關問題