2016-03-18 6 views
1

はのは、私は、レコードのクエリと更新属性コントローラのアクションを持っているとしましょう:コントローラーアクション - レール4、デザイン

def toggle_foo 
    bar = Bar.find(params[:bar_id]) 
    bar.foo.nil? ? bar.update_attributes(foo: ...) : bar.update_attributes(foo: ...) 
    render json: {...} 
end 

は、このような(非CRUD)アクションではなく、インスタンスメソッドを呼び出す必要があります直接データを操作する?

答えて

1

あなたのアプローチはOKだと思います。

MVCで重要なことは、懸念を明確に区別していることです。このようにして、コントローラー内で照会および決定オペレーションを維持し、すべてのデータ操作ロジックをモデルに委譲しています。これは、オブジェクトの向きの良いプラクティスに従います。

コントローラー上のデータを直接操作することもできます。例えば、データベースにデータを変更して保存することもできますが、それは大きなメンテナンスである必要はありません。

関連する問題