これは本当に明白なはずです。だったらごめんなさい。
Teams
レールにとの 2 つの足場を作成しましたPlayers
。問題なく動作しました。Team
ただし、 aには多くのものがあり、 aPlayers
にPlayers
属しているため、それらをリンクしたかったのTeam
です。そこで、それぞれのモデルに入り、関連付けを作成しました。いろいろ読んだところPlayers
、外部キーを格納するために新しい列を作成する必要があることがわかったので、移行でそれを行いました。それを呼び出してteam_id
、作成した 5 つのレコードのうち 4 つを更新し、ID を1
. 基本的に、この回答が指示したこと。
私が今理解していないのは、その関連付けをどのように使用するのですか? では、特定の例を得るには、そのチームの ID に基づいてPlayers
inの show.html.erb モデルをすべて一覧表示するにはどうすればよいでしょうか? 何らかの方法でコントローラーTeam
を呼び出す必要がありますか?Players
スキーマ:
ActiveRecord::Schema.define(:version => 20130303052538) do
create_table "players", :force => true do |t|
t.string "position"
t.integer "number"
t.integer "grade"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.string "first_name"
t.string "middle_name"
t.string "last_name"
t.integer "team_id"
end
create_table "teams", :force => true do |t|
t.string "name"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
end
モデル(簡潔にするためにここにまとめました):
class Player < ActiveRecord::Base
attr_accessible :grade, :first_name, :middle_name, :last_name, :number, :position, :team_id
# Relationships
belongs_to :team
end
class Team < ActiveRecord::Base
attr_accessible :name
# Relationships
has_many :players
end
私のTeam
コントローラーの一部:
class TeamsController < ApplicationController
def show
@team = Team.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @team }
end
end
end
意見:
<p id="notice"><%= notice %></p>
<p>
<b>Name:</b>
<%= @team.name %>
<%= @team.id %>
</p>
<p>
<b>Players:</b>
# I want to list them here.
</p>
<%= link_to 'Edit', edit_team_path(@team) %> |
<%= link_to 'Back', teams_path %>