我有一個模型,它看起來是這樣的:Rails:將模型添加到模型以基於current_user執行檢查?
class Comment < ActiveRecord::Base
...
#allow editing comment if it is moderated and the user passed-in
#is the one that owns the comment
def can_edit?(user)
moderated? and user.Type == User and user.id == self.user_id
end
...
end
並在View的電話:
<%= link_to 'Show Comment', @comment if @comment.can_show?(current_user) %>
我需要寫在許多不同的車型很多這樣的方法 - 排序驗證檢查來看看是否允許current_user 在模型上做些什麼。
但它感覺很累贅 - 特別是需要檢查傳入的user
確實是User
類型的對象。
什麼是乾淨的,最好的做法,做這種事情?我在正確的軌道上嗎? (即我應該加入這種方法的模型或其他地方)
注意
我使用範圍的查詢來獲得的評論和其他車型,但在某些情況下,我不能範圍查詢所以我必須使用
can_xxxx?
方法
Ps。我在做什麼被認爲是「胖胖的模特」?
感謝*很多*。這種方法感覺更清潔。我想現在對於你的技術有很多深入的理解! – Zabba 2010-10-21 15:34:23