如何访问多态关联中的相关模型

Jus*_*tin 1 ruby-on-rails associations

如果我有多态关联,如何在视图中访问相关方法?

例如,假设模型关联是:

class Order < ActiveRecord::Base
  belongs_to :orderable, :polymorphic => true
end

class Product < ActiveRecord::Base
  has_many :orders, :as => :orderable
end
Run Code Online (Sandbox Code Playgroud)

并且,在Order视图中,我尝试使用:

<%= @order.product.id %>
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用.那你如何访问视图中的相关模型呢?

编辑:这是我正在使用的表格:

<% form_for [@orderable, @order] do |f| %>
  ...
<% end %>
Run Code Online (Sandbox Code Playgroud)

然后,我将它包含在Product Show视图中,如下所示:

<%= render 'orders/form' %>
Run Code Online (Sandbox Code Playgroud)

Zab*_*bba 5

试试这个:

使用给出的名称:as来访问父级:

<%= @order.orderable.id %>
Run Code Online (Sandbox Code Playgroud)

此外,这里是Rails指南中的一些信息