идентификаторы в форме - PullRequest
1 голос
/ 24 февраля 2010

У меня есть модель события, которая имеет_and_belongs_to_many художников

class Event < ActiveRecord::Base
 has_and_belongs_to_many :humans, :foreign_key => 'event_id', :association_foreign_key => 'human_id'
end

в форме для вставки события, я поставил скрытое поле для идентификаторов художников:

 <%= event_form.text_field :artist_ids %>

Если я вставил вручную значение «8,9,10» (идентификаторы, связанные с 2 рядами людей) и отправил форму, в контроллере я получил только 8.

Почему?

Как я могу это сделать?

Ответы [ 2 ]

2 голосов
/ 24 февраля 2010

Когда вы присваиваете строку "8,9,10" для artist_ids, она преобразуется в целочисленное значение:

>> a.artist_ids = '1,2,3'
=> "1,2,3"
>> a.artist_ids
=> [1]

Вам нужно разделить его, прежде чем передать его модели:

>> a.artist_ids = '1,2,3'.split(',')
=> ["1", "2", "3"]
>> a.artist_ids
=> [1, 2, 3]
0 голосов
/ 24 февраля 2010

В вашем "новом" действии, как вы находите artist_ids? Вам нужно будет использовать тот же запрос в действии, которое отправляет форма. (Таким образом, если новый пользователь отправляет на создание, вам нужно найти художников в действии создания).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...