0

Post HABTM タグがあり、ネストされた属性を介して一括割り当てを使用しているとします。

私はPostモデルでこれを持っています:

accepts_nested_attributes_for :posts_tags, \
                              :reject_if => proc { |attrs| attrs.tag_id.blank? }

Postコントローラーにこれがあります:

def new
  @post = Post.new
  3.times { @post.posts_tags.build }
end

def create
  @post = Post.new(params[:post])
  @post.save
end

そして、これを投稿形式で:

<%= f.fields_for :tags do |tg| %>
  <%= tg.label :tag_id %>
  <%= tg.select :tag_id .... %>
<% end %>

すべてが完璧に機能し、最小限のコードで動作します。投稿は、選択されたタグに関連付けられます。

そして今: ユーザーに投稿用に少なくとも 1 つのタグを選択してもらいたい場合はどうすればよいでしょうか。タグが選択されていない投稿を無効にするにはどうすればよいですか? 最もエレガントなソリューションは何でしょうか?

4

1 に答える 1

1

Post モデルを追加validates_presence_of :tagsして、ユーザーにタグの選択を強制します。

于 2012-12-18T17:59:24.627 に答える