Как сделать ассоциацию has_many уникальной? - PullRequest
0 голосов
/ 08 августа 2011

Вот пример:

Class Store < ActiveRecord::Base
  has_many :employees
end

Теперь, когда я создаю сотрудника, например, так:

employee = Employee.new(attributes)

, а затем два магазина, например, так:

store1 = Store.new(employees: [employee])
store2 = Store.new(employees: [employee])

он изменяет store_id на сотрудника на store 2, избавляя от связи с store1.Как мне убедиться, что только один сотрудник может быть назначен в один магазин?

1 Ответ

2 голосов
/ 08 августа 2011

Попробуйте использовать синтаксис .build:

Итак, в действии создания (я предполагаю, что это происходит от действия нового сотрудника и что магазины уже созданы.) Сделайте что-то вроде этого:

#this is the id of whatever store... maybe its a nested resource so it would be something like
#@store = Store.find(params[:store_id])
@store = Store.find(id)
@employee = @store.employees.build(params[:employee])

Также убедитесь, что у вас есть принадлежность_ в вашей модели сотрудников.

...