下午全部,
我有一个名为snippet.rb的模型,我希望一次只能有一个用户发布,直到获得批准。
我会将其作为自定义验证或snippet.rb中的after_create
运行。
步骤流程如下:
有人可以帮助我,或指出我如何做到这一点的文件。
始终感谢您的帮助。我正试图在脑海中解决这个问题,但找不到任何帮助。
答案 0 :(得分:2)
before_filter :check_last_snippet, :only => [:create]
private
def check_last_snippet
redirect_to root_path unless Snippet.last.approved?
end
答案 1 :(得分:0)
我相信您应该使用自定义验证。
例如
validate :verify_for_not_approved_snippets
def verify_for_not_aproved_posts
errors.add(:base, "error message") if "your condition here"
end
阅读
答案 2 :(得分:0)
在您的用户模型中创建一个方法,并在创建代码段
之前调用此方法def check_snippet
return true if user.snippets.blank? || (user.snippets.present? && user.snippets.where(approved: true).size > 1)
end
如果此方法返回true,则只有用户可以再次发布片段。它可能对你有帮助。
答案 3 :(得分:0)
您可以在创建时使用验证,
validate :check_last_snippet_approved, :on => :create
def check_last_snippet_approved
errors.add(:base, "could not add due to last snippet not approved") if !self.last.nil? && self.last.approved == false
end