I have a Post has_many Comments association. Post has boolean attribute published.
When post.published is false, the new comment shouldn’t be valid.
What is the best practise to accomplish this kind of validation?
I’ve tried to do it by this way, but sadly, it doesn’t work correctly. It is still possible to create new comment for unpublished post.
class Comment < ActiveRecord::Base
validates :post_id, presence: true, if: :post_is_published
...
def post_is_publised
post && post.published
end
end
Hmm.. I think you have syntax errors in your code… Try this:
After reading your console output and checking your question one more time:
I understand that you don’t want to allow adding comments to unpublished posts. Above code should accomplish that.