2013-06-24 81 views
0

我有一個屬於用戶的Post模型。
我顯示如下的用戶名: @post.user.name如果用戶取消了他們的帳戶,它將不再起作用,因爲用戶爲零。
有沒有辦法讓回退用戶(例如「已刪除的用戶」)?嵌套資源的Rails回退

我雖然關於禁用用戶而不是刪除它們,但在某些情況下,我可能想刪除它們。

回答

0

有一個叫空模式的概念,你可以實現這樣的事情

class NullAuthor 
    def name 
    "Deleted user" 
    end 
end 

,你會使用這樣你的ActiveRecord模型

class Post < ActiveRecord::Base 
    belongs_to :user 

    def author 
    @author ||= if user.present? 
        user 
       else 
        NullAuthor.new 
       end 
    end 
end 

內通過這種方式,你永遠不會有檢查帖子用戶是否爲零)

+0

太棒了!謝謝。 我最終將其設置爲無法刪除的(佔位符)用戶。 – jomo