スーパーヒーロー、パワー、チームの 3 つのテーブルがあります。
スーパーヒーローは多くの力と多くのチームを持つことができます。
例えば:
superhero.rb
name:string
has_many :power_teams, :dependent => :destroy
has_many :powers, :through => :power_teams, :foreign_key => :power_id
has_many :teams, :through => :power_teams, :foreign_key => :team_id
power.rb
name:string
has_many :power_teams, :dependent => :destroy
team.rb
name:string
has_many :power_teams, :dependent => :destroy
#This is what I want to add to
power_team
belongs_to :superhero
belongs_to :power
belongs_to :team
更新ここにスーパーヒーローのコントローラーがあります
def create
@hero = Superhero.new(params[:hero])
形:
<%= form_for(@hero) do |f| %>
<%= f.label :name %><br />
<%= f.text_field :name %>
#Teams are a drop-down, you can only choose 1 team
<%= f.collection_select(:team_ids, Team.all(:order=>:name), :id, :name, {:prompt => true}) %>
#powers are checkboxes, you can choose multiple powers
<% Power.all.each do |power| %>
<label class="checkbox">
<%= check_box_tag "superhero[power_ids][]", power.id, @hero.power_ids.include?(power.id) %>
<%= power.name %>
</label>
<% end %>
<% end %>
保存すると、1 つのチームと 2 つのパワーが得られます (インデックス ページで):
Hero | Power | Team
1 1
1 2
1 1
これは正しいですか?私はこれを見て期待していると思いました:
Hero | Power | Team
1 1 1
1 2 1