Rails model for publishable posts
You could just do:

def published?
  !hidden? &amp;&amp; published_at.present? &amp;&amp; published_at &lt; DateTime.now
end


However I would probably define something like:

def visible?
  !hidden?
end


or possible even

def visible?
  !hidden? &amp;&amp; published_at.present?
end


And then

def published?
  visible? &amp;&amp; published_at &lt; DateTime.now
end