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

这在 Post 形式中:

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

一切都完美无缺,代码最少。帖子与被选中的标签相关联。

现在:如果我希望用户为他们的帖子选择至少一个标签怎么办。如何使未选择标签的帖子无效?什么是最优雅的解决方案?

4

1 回答 1

1

添加validates_presence_of :tagsPost 模型以强制用户选择标签。

于 2012-12-18T17:59:24.627 回答