0
私は投稿has_many Commentsの関連付けを持っています。投稿はブール値属性published
です。 post.published
がfalseの場合、新しいコメントは有効ではありません。 この種の検証を実行するベストプラクティスは何ですか?Railsのカスタム検証
私はこのようにしてみましたが、悲しいことに、正しく動作しません。まだ未発表の投稿に対して新しいコメントを作成することは可能です。
class Comment < ActiveRecord::Base
validates :post_id, presence: true, if: :post_is_published
...
def post_is_publised
post && post.published
end
end
[Object#try](http://api.rubyonrails.org/classes/Object.html#method-i-try)を見て、コードをちょっとしたものまで乾かしてみてください。 – x1a4
あなたは 'post.try(:published)'を提案していますか?それについて知りませんでしたが、確かにそれをより明確にしています、ありがとう。 –
ActiveSupportには、あまりよく書かれていなくても、[かなり有用なもの](http://guides.rubyonrails.org/active_support_core_extensions.html)があります。 – x1a4