1

Rails アプリには次の設定があります。ユーザーが登録し、音楽スタイルのチェック ボックスのセットから選択します。

ミュージック スタイルは現在 4 つしかありませんが、拡張可能である必要があります。簡単に拡張および変更できる MusicStyles のリストが欲しいです。

私のアプローチは、モデル 'MusicStyles' とモデル 'UserMusicStyles' を作成してから、次のような has_many_through 関連付けを使用することです。

class User < ActiveRecord::Base
  has_many :user_music_styles
  has_many :music_styles, :through => :user_music_styles
end

class UserMusicStyle < ActiveRecord::Base
  belongs_to :user
  belongs_to :music_style
end

class MusicStyle < ActiveRecord::Base
  has_many :music_styles
  has_many :users, :through => :user_music_styles
end

さて、登録中に MusicStyle.all.each do |m| のようなことをします。...チェックボックスを表示するにはどうすればよいですか?ユーザーコントローラーのデータベースに正しく保存するにはどうすればよいですか?

どんな助けでも大歓迎です!

4

1 に答える 1

0

あなたはこのようにそれを行うことができます:

<%= form_for @user do |f| %>
  <!-- User stuff -->
  ...
  <% MusicStyle.all.each do |m| %>
    <%= check_box_tag('user[music_style_ids][]', m.id, @user.music_styles.include?(m)) %>
  <% end %>
  <%= f.submit 'Save' %>
<% end %>
于 2012-08-29T07:13:55.867 に答える