我有一个允许用户注册的Rails应用程序。用户可以拥有他们想要遵循的多种音乐风格(多对多关联)。
现在,当新用户访问表单时,他应该默认选中所有音乐风格。但是当现有用户回来时(在编辑页面上使用相同的表单),他应该只检查那些为他的个人资料启用的音乐风格。我假设必须在控制器中设置,但如何为新用户设置所有音乐风格?
以下是表单中的代码:
<% MusicStyle.all.each do |m| %>
<%= check_box_tag('user[music_style_ids][]', m.id, @user.music_styles.include?(m)) %>
<label for="<%= m.id %>"><%= m.name %></label><br/>
<% end %>
非常感谢您的帮助!
答案 0 :(得分:0)
创建@user
时,您可以将所有音乐风格添加到您构建的新记录中。这将导致您的表单正确填充。
或者,您可以使用@user.new_record?
来确定这是否是新记录,并根据该记录生成复选框标记。