2012-05-22 3 views
1

Когда я отправляю форму создания стиля, я хотел бы создать новый стиль с несколькими функциями. Функции выбираются из блока выбора нескольких элементов, который заполняется из таблицы функций в базе данных. Таблица -0- должна обновляться соответствующим образом, в зависимости от функций, выбранных из мульти-выбора.Сохранение массива идентификаторов внешнего ключа в has_many через дизайн

Я могу сделать следующее в Рельсы консоли:

@style = Style.first 
@style.feature_ids = ['','2','4','6'] 

После ввода выше я буду видеть мой через таблица обновляется с тремя рядами соответствующие style_id и feature_id.

В моем стиле создать форму У меня есть следующие:

<%= m.input :feature_ids, :label => "Features", :collection => @features, :input_html => { :multiple => true } %> 

О представлении формы я получаю следующую PG ошибку:

PG::Error: ERROR: column "feature_id" is of type integer but expression is of type character varying at character 96 
HINT: You will need to rewrite or cast the expression. 
: INSERT INTO "stylefeatures" ("created_at", "feature_id", "style_id", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" 

Из Params хэша:

{"utf8"=>"✓", 
"authenticity_token"=>"lkdI9jhlhPW1P2Tyb8jFMKFM/kVXvgcJfSkL0qNH7xk=", 
"style"=>{"name"=>"123", 
"feature_ids"=>["", 
"2", 
"4", 
"6"], 
"commit"=>"Create Style"} 

ответ

1

Ваш @features - это коллекция Strin gs, измените его на целое, и вы будете хороши (вот о чем жалуется ваш db).

+0

Да, я заменил @features Feature.all в моей форме, и он работает. – Abram