これに似た質問を複数見ましたが、うまくいきませんでした。
私はチームモデルを持っています:
class Team < ActiveRecord::Base
has_one :p1, :class_name => "Player", :foreign_key => 'player_id', :validate => true
has_one :p2, :class_name => "Player", :foreign_key => 'player_id', :validate => true
end
私のチームの _form.html.erb では、プレイヤーを
<%= f.collection_select :p1, Player.all, :id, :name %>
ただし、フォームを送信すると、次のエラーが表示されます。
Player(#28401456) expected, got String(#14111904)
Application Trace | Framework Trace | Full Trace
app/controllers/teams_controller.rb:47:in `new'
Parameters:
{"utf8"=>"✓",
"authenticity_token"=>"GSIcEvROFnvgGWT4HvE2VNqRw4NxU1J8iAw/WhZeRLk=",
"team"=>{"p1"=>"1"},
"commit"=>"Create Team"}
そして、これが行のコードです
def create
@team = Team.new(params[:team])
.....
end
アイデアはありますか?