嵌套资源的Rails回退

时间:2013-06-24 22:47:04

标签: ruby-on-rails resources nested fallback

我有一个属于用户的Post模型 我显示这样的用户名: @post.user.name如果用户取消其帐户,则该用户将无法使用,因为该用户为零 有没有办法让后备用户(例如“删除用户”)?

我虽然关于禁用用户而不是删除它们,但在某些情况下我可能想删除它们。

1 个答案:

答案 0 :(得分:0)

有一个名为Null Pattern的概念,你可以实现类似这样的东西

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

通过这种方式,您永远不必检查帖子用户是否为零:)