2012-01-16 3 views
0

У меня есть форма, которая создана для создания объекта (устройства), а Device has_many Abilities.Rails 3 has_many, назначение вручную в контроллере

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

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

Спасибо!

EDIT: переименовывает действия умениям, чтобы избежать путаницы

ответ

0

Вы можете установить ассоциации, как это, используя некоторые из методов 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 
Смежные вопросы