Yuv*_*rmi 3 ruby-on-rails associations has-one belongs-to ruby-on-rails-3
说我有以下型号:
class Parent < ActiveRecord::Base
has_one :child
end
class Child < ActiveRecord::Base
belongs_to :parent
end
Run Code Online (Sandbox Code Playgroud)
我想通过孩子来检索父母,但是做以下操作失败了:我通过控制器以下列方式找到模型
@child = Child.find(params[:child_id])
Run Code Online (Sandbox Code Playgroud)
(不确定这是否相关,但由于我使用的是浅路由,因此URL中没有parent_id)
在我看来,我想像这样检索孩子的父母:
@child.parent
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?
谢谢!
更新:我的例子(当我决定启动一个新的应用程序并创建它时)实际上运行得很好.在我的实际应用程序中,我忘了包含belongs_to :parent在孩子的模型中.我有多傻.感谢您抽出时间发表评论并回答,伙计们.下次我在这里发布问题之前会仔细查看.
这正是你如何做到的.
事实上它不起作用表明存在一些阻碍@child父母拥有的潜在问题.
首先,检查表是否Child有外键.外键列(在本例中parent_id)应始终位于具有belongs_to关联的模型上.
其次,检查您提取的孩子是否实际拥有父母.这意味着外键(parent_id)不应该是nil.如果它有一个数值,请检查表中是否Parent有一个与foreign_key具有相同值的记录Child.
您还可以使用Rails控制台(rails console来自您的应用程序目录)来仔细检查关联.做Child.first.parent,看看发生了什么.当然,您可以开始使用变体,例如,Parent.first.child或者Child.find(123).parent您也可以使用params.
| 归档时间: |
|
| 查看次数: |
6611 次 |
| 最近记录: |