Rails - 如何关联嵌套模型

Rails - how to associate nested models

我有一个组织模型,我也在文件夹名"stance"下做了一系列嵌套模型。其中一个模型称为概览。

协会是:

Organisation.rb

has_one :overview

姿态::概览

belongs_to :organisation

我的姿态资源控制器嵌套在名为 stance 的文件夹下。

我的路线是:

namespace :stance do
    resources :overviews
    end

在我的部分立场视图中,我试图从概览中渲染属性 table。

我试过:

<p><%= @overview.internal_explanation %></p>
<p><%= @stance.overview.internal_explanation %></p>
<p><%= @stance::overview.internal_explanation %></p>

我想在我的组织展示中显示这部分内容,但我不知道如何访问概览 table。我需要在关联中添加对 'stance' 的引用吗?

我可以看到在控制台中我需要写:

o = Stance::Overview.create(internal_explanation: "test")

但我看不到如何在代码中使用它。

如果您不使用标准的命名约定,那么您需要给Rails一些提示:

has_one :overview, class_name: Stance::Overview

belongs_to :organisation, inverse_of: :overview

了解这一点的最佳途径是查看 has_manybelongs_to 上的源代码注释。我建议使用具有 "go to source"/"go to declaration" 功能的编辑器,它允许您按住 CTRL 键并单击方法名称并跳转到 gem 代码,以便您可以看到注释。我在学习 Ruby 时通过 Rubymine 使用了它,这对我帮助很大。