ActiveScaffold: как создать выпадающий список для полиморфной ассоциации? - PullRequest
7 голосов
/ 03 марта 2010

Я пытаюсь создать раскрывающийся список выбора для полиморфной ассоциации с ActiveScaffold.

У меня есть:

class Award
  belongs_to :sponsorship, :polymorphic => :true
end

class Organization
  has_many :awards, :as => :sponsorship
end

class Individual
  has_many :awards, :as => :sponsorship
end

При попытке создать выпадающий список выбора в awards_controller с:

config.columns[:sponsorship].form_ui = :select

Я получаю следующую ошибку:

ActionView :: TemplateError (неинициализированная константа Премия :: Спонсорство)

Я не уверен, что я что-то не так делаю или пытаюсь выполнить не поддерживается напрямую в AS.

Был бы очень признателен за совет.

Ответы [ 3 ]

0 голосов
/ 31 января 2011

Я не уверен в том, что вы пытаетесь сделать, но рельсы действительно верны, когда говорят, что нет ": спонсорство".

Когда используется полиморфизм, рельсы автоматически создают два столбца, в вашем случае: * спонсорство_ид * и * спонсорство_тип *.

Вы можете использовать один из них.

Однако я не знаком с ActiveScaffold form_ui, поэтому не могу вам помочь.

0 голосов
/ 30 ноября 2011

Я получаю эту ошибку, но только если у меня есть экземпляр награды без спонсорства (мои имена разные ...). Таким образом, предположительно, постеры ОП и последующие действия прошли через это, но для будущих читателей убедитесь, что вы не создаете экземпляр зависимой модели при использовании полиморфной ассоциации с active_scaffold ...

0 голосов
/ 28 января 2011

Я не знаком с ActiveScaffold ... Но, быстрый проход в их документации выявил раздел о has_many: через который я знаком с ActiveRecords ... так что для чего оно стоит, возможно, что ваш полиморфный ассоциации должны быть написаны так:

class Organization
  has_many :awards, :through => :sponsorship
end

class Individual
  has_many :awards, :through => :sponsorship
end
...