Rails 3 has_many, ручное назначение в контроллере - PullRequest
0 голосов
/ 16 января 2012

У меня есть форма, созданная для создания объекта (устройства), и возможности устройства has_many.

Я могу установить это довольно легко с помощью формы, в которой способности выбираются пользователем (например, с помощью флажков). Однако я хотел бы установить их в контроллере, поскольку они не будут выбираться пользователем (они будут основаны на некоторых других параметрах, передаваемых при создании устройства, например, типе устройства).

Как я могу настроить контроллер так, чтобы я мог по существу жестко связать отношения has_many в зависимости от типа создаваемого устройства?

Спасибо!

РЕДАКТИРОВАТЬ: переименовывает действия в способности, чтобы избежать путаницы

1 Ответ

0 голосов
/ 16 января 2012

Вы можете установить такие ассоциации, используя некоторые из методов, которые Rails автоматически определяет при настройке ассоциации. В принципе, вы должны быть в состоянии пойти

def action_name
  #other action code

  @device = Device.find(params[:id]) #or however you get it
  #if you want to grab abilities using SQL:
  @device.abilities = Ability.where('some conditions')
  #or if you have a particular group:
  @device.abilities = [ability_1, ability_2]
  @device.save!
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...