Ruby on rails rails对象需要获取字符串

Ruby on rails rails对象需要获取字符串,ruby-on-rails,activerecord,ruby-on-rails-3.2,erb,Ruby On Rails,Activerecord,Ruby On Rails 3.2,Erb,我见过很多类似的问题,但都不适合我 我有一个团队模型: 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 =>

我见过很多类似的问题,但都不适合我

我有一个团队模型:

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

这是第行的代码

def create
  @team = Team.new(params[:team])
  .....
end
有什么想法吗?

试试这个:

<%= f.collection_select :player_id, Player.all, :id, :name %>

我可能错了,但我猜是错的,而不是错的

<%= f.collection_select :p1, Player.all, :id, :name %>

你需要

<%= f.collection_select :p1, :team_id, Player.all, :id, :name %>

最后,这起作用了:

 <%= f.collection_select :p1_id, Player.all, :id, :name %>

嗯,我看到以下错误:团队中的NoMethodError#新显示track/app/views/Teams/_form.html.erb,其中第14行出现:未定义的方法“合并”:名称:符号提取源(第14行周围):11:12:13:14:15:16:17:我看到错误:团队中的NoMethodError#new Showing track/app/views/Teams/_form.html.erb where line#14引发:未定义的方法`合并':名称:符号提取源(在第14行附近):11:12:13:14:15:16:17:对不起,我原来的答案是错误的。我更新了它。再试一次?嗯,回到原点。这是生成p1[团队id],我想要的是团队[p1]。。从本质上说,上述行为导致了错误的行为。我不得不切换到我原来的表单
,因为团队是自动从f来的。然而,这让我回到了我发布的原始问题:(感谢这一点-非常误导性的错误消息-应该告诉我们列名与任何列名都不匹配,并且应该是20秒的修复,而不是一个小时的修复。对此我深表感谢。这也适用于rails 5中的强参数。
<%= f.collection_select :p1, Player.all, :id, :name %>
<%= f.collection_select :p1, :team_id, Player.all, :id, :name %>
 <%= f.collection_select :p1_id, Player.all, :id, :name %>
def create
  @team = Team.new(params[:team])
  .....
end