Я делаю приложение в Rails 4. Я использую Simple Form для форм.Rails Simple Form Выберите из Array - полиморфные ассоциации
У меня есть модель профиля и модель организации.
Ассоциации являются:
profile.rb
has_one :organisation, as: :orgable
organisation.rb
has_many :profiles
В моей организации таблицы, у меня есть атрибут: org_type.
В моей форме организации, я прошу пользователей, чтобы выбрать из массива типов организации:
<%= f.input :org_type, :label => "Organisation type", collection: [ "University", "Research Organisation", "Company"] %>
В моем профиле форме, я хочу спросить пользователей, которые уни они изучают в.
Я хочу использовать множество университетов, созданных в рамках модели организации.
У меня есть рамки в моей организации модели отфильтровывать университеты:
scope :all_uni, -> { where(org_type: 'University') }
В моем профиле форме у меня есть:
<%= f.input :institution, :label => "Graduated from" %>
Но это только имеет текстовое поле.
Я попытался заменить эту строку попыткой сделать функцию выбора в моей форме, которая относится к области моей модели организации для all_uni. Это выглядит следующим образом:
<%= f.select(:institution, @organisation.all_uni.title.map { |value| [ value, value ] }) %>
Это дает эту ошибку:
undefined method `all_uni' for nil:NilClass
Я не понимаю, что значит это сообщение об ошибке, но я также не уверен, что я на правильном пути с поле выбора формы. Любые подсказки для того, где искать, чтобы это работало. Я не уверен, как начать настройку поля выбора в первую очередь?
ДРУГАЯ ПОПЫТКА:
Я также попытался использовать это в моем профиле форме:
<%= f.select(:institution, @organisation.all_uni.title) %>
Но я получаю ту же ошибку. Я должен быть в стороне от следа - я исчерпал каждый вариант, который я могу найти.
ДРУГАЯ ПОПЫТКА
Я нашел этот пост Rails Simple Form custom association select field
Принимая пример в этом решении, я попробовал:
<%= f.input :institution do %>
<%= f.select :institution, Profile.Organisation.all_uni.map{ |l| [l.title {:title => l.title.titlecase}] } %>
<% end %>
Но, я получаю эту ошибку синтаксиса. Я попытался удалить =>, но продолжаю получать больше синтаксических ошибок.
syntax error, unexpected =>, expecting '}' ...i.map{ |l| [l.title {:title => l.title.titlecase}] });@out... ...^
Привет вредоносных программ. Благодарю. Дополнительный бит необходим, если модель является полиморфной. В любом случае, спасибо. – Mel