假设我有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 %>
一切都很完美,代码最少。帖子与被选中的标签相关联。
现在:如果我希望用户为他们的帖子选择至少一个标签,该怎么办?如何使没有选择标签的帖子无效?什么是最优雅的解决方案?
答案 0 :(得分:1)
在Post模型中添加validates_presence_of :tags
以强制用户选择标记。