【发布时间】:2018-01-21 18:53:42
【问题描述】:
我有 2 个表 scenarios 和 rental_details。
关系是:
- rental_details属于场景
- 场景 has_one rental_detail
在rental_details 表中,我将scenario_id 作为一列(注意这是数据类型INTEGER 而不是FOREIGN_KEY)。
如果我在 Rails 控制台中运行以下命令:
rental_details_1 = RentalDetail.find(123)
rental_details_1.id
=> 123
rental_details.scenario.id
=> 22 #i.e. this is linked to scenario with id = 22
但是,如果我执行以下操作:
scenario_1 = Scenario.find(22)
scenario_1.id
=> 22
scenario_1.rental_details.id
我收到以下错误:
NoMethodError:未定义方法“rental_details”
你的意思是?出租细节 Rental_detail=
如果我将其更改为 scenario_1.rental_details.id,我仍然会收到错误消息。
如果我有这样的一对一关系,我不能从场景对象访问rental_details 表吗?我以为外键在“belongs_to”表中,我可以自动从“has_one”表的对象中调用它的内容。
(抱歉,我是编码新手,所以我的术语很可能在某些方面是错误的)。
【问题讨论】: