1
我對數據庫和Rails(使用3.2)都是新手,我懷疑這是一個基本問題,我只是無法找到答案爲。Rails 3:鏈接`has_many`與最後一個表的條件的關係,沒有過多的查詢
我正在製作一個應用程序,用於跟蹤人們提交給期刊的文章。所以,每個用戶都有一些文章。對於每篇文章,他們都可以將其提交給一些期刊。提交對象本身不僅跟蹤提交的文章和提交的日誌,還跟蹤提交日期,提交方式(電子郵件,在線系統等),收到回覆的日期(如果有的話),回覆(如果有的話)(例如接受,重新提交,拒絕)。
我試圖讓用戶在一個地方查看他們的所有優秀提交。因此,對於每一個用戶,我想查詢數據庫來獲取所有提交屬於文章屬於該用戶,但只返回了其響應是空的意見書(意思是有沒有反應呢,和因此提交仍然很好)。
所以我的模型的關係如下:現在
class User < ActiveRecord::Base
has_many :articles
end
class Article < ActiveRecord::Base
belongs_to :user
has_many :submissions
end
class Journal < ActiveRecord::Base
has_many :submissions
end
class Submission < ActiveRecord::Base
belongs_to :article
has_one :journal
end
,對於給定@user
,我想我可以做類似
@articles_with_subs = @user.articles.joins(:submissions)
然後
@out_subs = Array.new
@articles_with_subs.each do |article|
outs = article.submissions.where("response NOT NULL")
@out_subs.push outs
end
@out_subs.flatten!
但這似乎相當低效。我錯過了什麼可能很大很明顯的事情?
非常感謝。
啊哈,所以我是從用戶而不是從意見反饋。謝謝! – bwk 2012-03-21 19:52:10