以下のロジックを別の場所に移動したいので、コントローラーとレーキタスクの両方で使用できます。基本的にはポイントは、私はJSONはその内のすべてのデータを持っているので、関連をトラバースしなければならないということですrakeタスクでjsonをレンダリングする方法
def show
@user = User.find(params[:id])
@account = # load account
@sales = # load sales
..
render :json => {
"user": user,
"account": @account.map do |a|
JSON.parse(a.to_json(include: :addresses))
end,
"sales": @sales.map do |s|
JSON.parse(s.to_json(include: :products))
end
}
end
:
私のコントローラのアクションは、次のようになります。
このロジックを別の場所に移動するにはどうすればいいですか。コントローラの動作とレイクタスクでこのロジックを呼び出すことができます。
1つのアイデアがあります。この仕事をしているapiを開く 'table-less model'(通常のRubyクラス)を作成します。次に、どこからでも呼び出すことができます – illusionist
[as_json](http://apidock.com/rails/Hash/as_json)メソッドをユーザーモデルに上書きしてから、コントローラとレーキタスクから呼び出すことができます。 –