В Ruby on Rails много проблем с массивом - PullRequest
0 голосов
/ 21 сентября 2009

У меня проблемы с добавлением в Имеет много через ассоциации с использованием user_ids.

Моя модель общения выглядит так:

class communication
 has_many :recipients
 has_many :users, :through => :recipients
end

В моем действии создания для контроллера связи я пытаюсь вручную добавить user_ids к объекту связи следующим образом:

@communication = new Communications(params[:communication])
@communication.user_ids << id
logger.debug @communication.user_ids # is empty

Я не могу понять, почему массив @communication.user_ids пуст, даже когда я делаю жестко закодированный идентификатор, например, так:

@communication = new Communications(params[:communication])
@communication.user_ids << 1
logger.debug @communication.user_ids # is still empty!

Я все еще получаю пустой массив @communication.user_ids.

Я что-то упустил с моим методом? Любые советы, как это работает?

Заранее спасибо!

1 Ответ

2 голосов
/ 21 сентября 2009

Так как это has_many :through, возможно, вам нужно предоставить полные объекты, чтобы отношения могли быть созданы плавно. Попробуйте это:

@communication = Communication.new params[:communication]
@communication.users << User.find( 1 )
@communication.user_ids  # should be [ 1 ]
...