我的应用程序中有一个非常基本的 API,它还有一个索引页面,允许测试/演示各种 API 功能。
由于这个索引 HTML 页面,所有函数都应该能够以 HTML(它只是重新呈现附有 Flash 消息的索引页面)或 JSON(它只是发送一个简单的状态/消息对象)来响应。
每个功能目前看起来有点像这样......
def do_stuff
if params['stuff']
begin
Helper.do_stuff params['stuff']
rescue Exception => ex
msg = ex.message
status = 'error'
flash[:error] = msg
else
msg = 'Stuff done'
status = 'success'
flash[:success] = msg
end
else
msg = 'No stuff provided'
status = 'error'
flash[:error] = msg
end
respond_to do |format|
format.html { render 'api/index' }
format.json do
render json: {:status => status, :message => msg}
end
end
end
人们会推荐什么来干燥这个?以某种方式从闪存哈希构造 JSON 状态对象似乎是件好事。
我正在考虑使用 Helper 还是通过从 JSON 布局中解析 flash 哈希的逻辑来获得更优雅的东西?