Я хочу настроить проверку, чтобы люди не могли отправить сообщение, если только они не нажимают на категорию для этой записи, а также чтобы убедиться, что они могут выбрать только одну из категорий для этой записи поэтому почта может иметь только одну категорию. Вот modlesс использованием валидации с has_many_through
class Categorization < ActiveRecord::Base
belongs_to :post
belongs_to :category
end
class Category < ActiveRecord::Base
has_many :categorizations
has_many :posts, :through => :categorizations
end
class Comment < ActiveRecord::Base
belongs_to :user
validates :content, presence: true,
length: { minimum: 5 }
end
class Post < ActiveRecord::Base
belongs_to :user
has_many :comments
has_many :categorizations
has_many :categories, :through => :categorizations
validates :title, :content, presence: true,
length: { minimum: 5, maximum: 140 }
end
также здесь моя форма:
<%= form_for @post, :html => {:multipart => true} do |f| %>
<% if @post.errors.any? %>
<div id="error_explanation" class="animated tada">
<h2><%= pluralize(@post.errors.count, "error") %> prohibited this post from being saved:</h2>
<ul>
<% @post.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :title %><br>
<%= f.text_field :title %>
</div>
<div class="field">
<%= f.file_field :image %>
</div>
<div class="field">
<%= f.label :content %><br>
<%= f.text_area :content %>
</div>
<%= hidden_field_tag "post[category_ids][]", nil%>
<% Category.all.each do |category| %><br>
<%= check_box_tag "post[category_ids][]", category.id, @post.category_ids.include?(category.id), id: dom_id(category)%>
<%= label_tag dom_id(category), category.name %>
<% end %>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
</div>
сделать любого из вас знает, что я должен были бы поставить в, чтобы моя форме вернуться с сообщением говоря необходимость выбора категории или может выбрать только одну категорию?