Не могу определить Has_many в выбранной форме

Я пытаюсь создать простую связь 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.


person Larry Mai    schedule 27.04.2012    source источник
comment
отредактированный код формы для включения mutli-select   -  person Larry Mai    schedule 27.04.2012


Ответы (1)


Не вижу конкретной ошибки. Нет необходимости определять foreign_key с помощью :foreign_key => "position_id", но это не повредит. Мне просто интересно, как вы можете иметь несколько идентификаторов в вашем журнале ("education_ids"=>["", "1", "2"]), если у вас есть только одно поле выбора в вашей форме? Если вы хотите назначить множественные «образования» на одну «должность». Руководство по помощникам по форме rails также может предложить некоторые ценные советы. Первый идентификатор, переданный в массиве ["", "1", "2"], пуст, возможно, это может вызвать проблемы.

person 0x4a6f4672    schedule 27.04.2012
comment
ты прав. Я недавно добавил в код параметр multi и не обновлял вставленный код. - person Larry Mai; 27.04.2012