我想將下面的邏輯移到其他地方,以便我可以在我的控制器和rake任務中使用它。如何在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
基本上一點是,我必須遍歷關聯,因此JSON有其中的所有數據。
我該如何將這個邏輯移到別的地方,然後我可以在我的控制器動作中調用它,也可以在rake任務中調用它。
一個想法是;你創建一個'無表模型'(它是一個普通的Ruby類),開啓一個API來完成這項工作。然後你可以從任何地方調用它 – illusionist
你可以覆蓋[as_json](http://apidock.com/rails/Hash/as_json)方法到用戶模型中,然後從控制器以及從rake任務中調用它。 –