Ruby on rails 设置a在rails中有一个关系
我不明白为什么这个不起作用:Ruby on rails 设置a在rails中有一个关系,ruby-on-rails,ruby,has-one,Ruby On Rails,Ruby,Has One,我不明白为什么这个不起作用: home_team = Team.find_by_name! home_team["name"] away_team = Team.find_by_name! away_team["name"] fixture.home_team = home_team fixture.away_team = away_team 但这确实是: home_team = Team.find_by_name! home_team["name"] away_team = Team.fi
home_team = Team.find_by_name! home_team["name"]
away_team = Team.find_by_name! away_team["name"]
fixture.home_team = home_team
fixture.away_team = away_team
但这确实是:
home_team = Team.find_by_name! home_team["name"]
away_team = Team.find_by_name! away_team["name"]
fixture.home_team_id = home_team.id
fixture.away_team_id = away_team.id
夹具型号:
class Fixture < ActiveRecord::Base
has_one :home_team, foreign_key: 'home_team_id', class_name: 'Team'
has_one :away_team, foreign_key: 'away_team_id', class_name: 'Team'
...
end
class Fixture
我没有收到任何错误,行保存,但是home\u team\u id
和away\u team\u id
都是null
有人能解释一下吗?如果你的
Fixture
有home\u team\u id
和way\u team\u id
你会想在那里使用belishing\u
。好的,所以我把关系改成了belishing\u to,效果如预期。但是我仍然不明白为什么一个方法起作用而另一个不起作用?在你的第二个例子中,它起作用是因为你直接设置了属性,而在你的第一个例子中,它失败了,因为关联没有正确设置。是的,我觉得很愚蠢。谢谢你的回复!