gpt4 book ai didi

ruby-on-rails - Active Record 关联类型不匹配

转载 作者:行者123 更新时间:2023-12-04 07:39:04 28 4
gpt4 key购买 nike

我在这样的比赛中嵌套了结果

/matches/16/results/13/edit

在我有以下选择字段的地方,这显示了正确的信息(team.name 及其 team.id)

<%= f.collection_select :winner, @select_winner_loser, :id, :name %>

现在,当我尝试编辑结果并选择获胜者时,我得到了以下信息:

ActiveRecord::AssociationTypeMismatch Team(#10504340) 预期,得到字符串(#6163240)

“当分配给关联的对象类型不正确时引发。” http://api.rubyonrails.org/classes/ActiveRecord/AssociationTypeMismatch.html

获胜者是 团队 对象, 结果.rb 看起来像这样
class Result < ActiveRecord::Base
has_one :match
belongs_to :winner, class_name: "Team"
belongs_to :loser, class_name: "Team"
end

@select_winner_loser 来自我的 results_controller
  def edit
@select_winner_loser = []
@select_winner_loser << @match.top
@select_winner_loser << @match.bottom
end

Match.top & bottom 也是团队对象
class Match < ActiveRecord::Base
belongs_to :top, class_name: "Team"
belongs_to :bottom, class_name: "Team"
...
belongs_to :result
end

我不明白为什么我会得到这个,因为我的选择字段中有正确的对象,有什么想法吗?

谢谢

最佳答案

改变

<%= f.collection_select :winner, @select_winner_loser, :id, :name %>


<%= f.collection_select :winner_id, @select_winner_loser, :id, :name %>

以及相应的允许参数。 Rails 将创建一个 Team对象,当它看到 _id在名字里。

关于ruby-on-rails - Active Record 关联类型不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25920024/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com