Отображение полиморфных ассоциаций в представлении - PullRequest
0 голосов
/ 28 февраля 2012

Возможно, на этот вопрос есть простой ответ, но я потерялся.

Я создал свою первую Полиморфную Ассоциацию сегодня, чтобы создать поле деятельности.

Вот код деятельности.rb:

class Activity < ActiveRecord::Base

  belongs_to :trackable, :polymorphic => true

end

В базе данных для мероприятий у меня есть столбцы:

id
name
trackable_id
trackable_type
created_at
updated_at

Вот примечание.rb:

class Note < ActiveRecord::Base

  has_many :activities, :as => :trackable

  after_create :create_an_activity

  def create_an_activity
    self.activities.build(:name => candidate_id)
  end

end

В моем представлении index.html.erbУ меня есть:

<% @activities.each do |activity| %>
  <p>activity.name</p>
<% end >

Мой вопрос:

В настоящее время Activity.name в представлении выводит идентификатор, потому что у меня есть: name = >андидат_ид.Записка создана для кандидата.Но то, что я действительно хочу, чтобы это вывел, является кандидатом.full_name (который находится в таблице кандидатов).Однако это не работает, потому что full_name отсутствует в таблице примечаний.Это в таблице кандидатов.Есть ли способ получить к нему доступ?Кандидаты имеют множество заметок, а записка принадлежит кандидату.

1 Ответ

2 голосов
/ 28 февраля 2012

понравилось ваше умение делиться с Вином пару месяцев назад!

Я считаю, что к тому, что вы ищете, можно получить доступ через родительскую ассоциацию, вызвав self -> parent -> attribute:

def create_an_activity
  self.activities.create(:name => self.candidate.full_name)
end

Также исправьте меня, если я ошибаюсь, но если вы позже не вызываете сохранение, кажется, что вы ищите self.activities.create вместо .build

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...