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_many
和 belongs_to
上的源代码注释。我建议使用具有 "go to source"/"go to declaration" 功能的编辑器,它允许您按住 CTRL 键并单击方法名称并跳转到 gem 代码,以便您可以看到注释。我在学习 Ruby 时通过 Rubymine 使用了它,这对我帮助很大。
我有一个组织模型,我也在文件夹名"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_many
和 belongs_to
上的源代码注释。我建议使用具有 "go to source"/"go to declaration" 功能的编辑器,它允许您按住 CTRL 键并单击方法名称并跳转到 gem 代码,以便您可以看到注释。我在学习 Ruby 时通过 Rubymine 使用了它,这对我帮助很大。