Как связать идентификатор из выбранной формы с другим объектом? - PullRequest
0 голосов
/ 26 марта 2011

У меня есть две модели: Study и StudyType.Последний имеет только два столбца: id и name и хранит тип исследования, такой как Бакалавр , Магистр и так далее.Все значения уже вставлены.Я использовал команду rake db:seed после добавления соответствующих операторов в /db/seeds.rb.
StudyType has_many :studies, где в качестве Study belongs_to :study_type и accepts_nested_attributes_for :study_type.

Теперь я хочу выберите поле в моей новой форме обучения.Я создал поле выбора (см. Ниже), но когда я отправляю форму, форма вставляет новую запись в таблицу study_types ?!?вместо установки id study_type в объекте study.Вы можете мне помочь?

Вот new действие studies_controller

@study = Study.new
...
@study.study_type = StudyType.new

Вот частичное исследование:

<%= render :partial => "shared/study_form_fields", :locals => { :study_fields => study_fields } %>  
...
<%= study_fields.fields_for :subject_type do |study_type_fields| %>
  <%= render :partial => "shared/study_type_form_fields", :locals => { :study_type_fields => study_type_fields } %>
<% end %><!-- End of study_type_fields -->
...

Воттип обучения частичный.

# File: _study_type_form_fields.html.erb
<%= study_type_fields.label :name, "Study type" %>
<%= study_type_fields.collection_select :name, StudyType.all, :id, :name, :prompt => "Please select a study type." %>

1 Ответ

1 голос
/ 26 марта 2011

Мне следует использовать study_type_id вместо name здесь

# File: _study_type_form_fields.html.erb
<%= study_type_fields.label :study_type_id, "Study type" %>
<%= study_type_fields.collection_select :study_type_id, StudyType.all, :id, :name, :prompt => "Please select a study type." %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...