2012-01-16 10 views
0

オブジェクト(デバイス)を作成するように設定されたフォームがあり、デバイスhas_many能力があります。Rails 3 has_many、コントローラでの手動割り当て

能力をユーザーが選択できるフォーム(チェックボックスなど)で簡単に設定できます。しかし、これらはコントローラで設定したいと思っています。ユーザが選択できないためです(デバイスが作成されたときに渡される他のパラメータ、たとえばデバイスの種類に基づいています)。

コントローラをセットアップして、作成されたデバイスのタイプに基づいてhas_manyリレーションシップを本質的にハードワイヤリングできるようにするにはどうすればよいですか?

ありがとうございます!

EDIT:あなたは、あなたが関連付けを設定する際にRailsが自動的に定義された方法のいくつかを使用して、このように関連付けを設定することができます混乱

答えて

0

を避けるために、能力にアクションの名前を変更します。基本的に行くことができるはずです

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 
関連する問題