Как получить доступ к родственным моделям в полиморфных ассоциациях - PullRequest
1 голос
/ 03 июня 2011

Если у меня есть полиморфная ассоциация, как мне получить доступ к связанным методам в моих представлениях?

Например, скажем, ассоциации моделей:

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 %>

И затем я включаю его в представление Product Show, например:

<%= render 'orders/form' %>

Ответы [ 2 ]

5 голосов
/ 03 июня 2011

Попробуйте это:

Используйте имя, данное :as для доступа к родителю:

<%= @order.orderable.id %>

Также, вот некоторая информация в Rails Guides

1 голос
/ 03 июня 2011

Возможно, стоит проверить Railscast от Райана Бейтса .Должен научить вас всему, что вам нужно знать о полиморфных ассоциациях.

...