0

我有一个允许用户注册的 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 %>

非常感谢您的帮助!

4

1 回答 1

0

创建时@user,您可以将所有音乐风格添加到您构建的新记录中。这将导致您的表单被正确填充。

或者,您可以使用它@user.new_record?来确定这是否是一条新记录,并根据它生成您的复选框标签。

于 2012-09-25T14:26:28.367 回答