Вы должны всегда проверять как на уровне модели, так и на видах.
class Comment < ActiveRecord::Base
belongs_to :post
validate :check
private
def check
if post.present?
errors.add("Post", "can not have more than 3 comments") if post.comments.size >= 3
end
end
end
class Post < ActiveRecord::Base
# other implementation...
def commentable?
comments.size <= 3
end
end
Затем просто вызовите #commentable?
в ваших представлениях, как это.Вы никогда не должны жестко кодировать значения в представлениях.
<% if @post.commentable? %>
<%= render "form" %>
<% end %>