Я пытаюсь создать простую связь has_many, а затем обновляю ее с помощью форм. Заранее спасибо за помощь.
Модели
class Position < ActiveRecord::Base
#position attributes
has_many :educations, :foreign_key => "position_id"
class Education < ActiveRecord::Base
belongs_to :position
EDUCATION_CHOICES = ([["Undergrad", "0"],["Master", 1],["PHD", 2]])
Модель данных Education имеет PK (авто), position_id, education_value и timestamps. education_value предназначено для хранения значения из EDUCATION_CHOICES
startupfeeder_dev=# select * from educations; id | position_id | education_value | created_at | updated_at ----+-------------+-----------------+----------------------------+---------------------------- 3 | 11 | 1 | 2012-04-27 08:26:28.077517 | 2012-04-27 16:27:50.330082 1 | 12 | 1 | 2012-04-27 00:40:22.868336 | 2012-04-27 16:30:07.123653 2 | 12 | 2 | 2012-04-27 00:45:06.613306 | 2012-04-27 16:30:07.127601 (3 rows)
Форма:
<%= f.select(:education_ids, Education::EDUCATION_CHOICES,{ :prompt => "Please select"},
{ :multiple => true, :size => 5 }) %>
Контроллер положения:
@position = Position.new(params[:position])
Стандарт, пока ничего не добавлено.
Я вручную добавил некоторые данные, и все работает нормально.
Но обновление и создание не отображаются правильно.
Вот что я записываю в свой журнал:
Processing by PositionsController#create as HTML
Параметры: {"position" => {"title" => "test13", "education_ids" => ["", "1", "2"], "description" => "test13"}, "commit" = > "Create Position", "Authentity_token" => "XZRsnWTKkpprCOfmekOuXdPFKbZea1bfckCsLgG3 / go =", "utf8" => "\ 342 \ 234 \ 223"} Образовательная нагрузка (0,9 мс) ВЫБРАТЬ "образование". * ИЗ "ОБРАЗОВАНИЯ". образования "." id "IN (1, 2)
Я думаю, что моя проблема в f.select, где у меня есть: education_ids, он должен отображаться в education_values.