我正在使用Rails 3.1更新站點並添加一些功能。此應用程序跟蹤一系列網站的測試。最初我將每個測試的成績作爲測試表中的一列存儲,但現在我創建了一個名爲評論的新模型,以保存每個測試分配的成績和評論的歷史記錄。該模型是這樣的:Rails 3:我如何使用相關對象上的方法?
class Site < ActiveRecord::Base
has_many :tests
has_many :reviews, :through => :tests
class Test < ActiveRecord::Base
has_many :reviews
belongs_to :site
class Review < ActiveRecord::Base
belongs_to :test
has_one :user
以前我可以做這樣的事情的網站模式獲得上檔次一些報告的數據:
def total_a_grades
tests.count(:conditions => "reviewer_grade = 4 and review_status = 3")
end
由於成績現在出試驗模型的我創建這個方法來訪問最新的等級爲每個測試:
def last_grade
return reviews.find(:last).grade
end
也能正常工作在測試視圖中顯示最近的品位,但我怎麼可以用它在站點級別?由於該值現在處於未存儲在數據庫中的方法中,因此我不知道如何使用它,並且在主要在線教程/截屏視頻網站上找不到與此相關的任何內容。
在此先感謝您的幫助!
在測試快樂的世界裏,就是Ruby,一個名爲** Test **的類正在尋求麻煩。我甚至無法在Rails控制檯中創建一個測試。 https://gist.github.com/1431777 – slothbear
你沒有說任何關於用戶,但我懷疑審查'belongs_to:user'而不是'has_one:user'。這篇文章幫了我很多:[Has_One vs. Belongs_To](http://duanesbrain.blogspot.com/2006/05/ruby-on-rails-hasone-versus-belongsto.html) – slothbear