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

时间:2011-06-03 17:46:09

标签: ruby-on-rails associations

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

例如,假设模型关联是:

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

class Product < ActiveRecord::Base
  has_many :orders, :as => :orderable
end

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

<%= @order.product.id %>

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

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

<% form_for [@orderable, @order] do |f| %>
  ...
<% end %>

然后,我将它包含在产品展示视图中,如下所示:

<%= render 'orders/form' %>

2 个答案:

答案 0 :(得分:5)

试试这个:

使用:as指定的名称访问父级:

<%= @order.orderable.id %>

此外,here is some info in the Rails Guides

答案 1 :(得分:1)

可能想查看Railscast by Ryan Bates。应该教你关于多态关联的所有知识。