gpt4 book ai didi

ruby-on-rails - 将 Flash 消息呈现为 JSON 响应的 Rails DRY 机制

转载 作者:行者123 更新时间:2023-12-04 03:41:57 25 4
gpt4 key购买 nike

我的应用程序中有一个非常基本的 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 哈希的逻辑来获得更优雅的东西?

最佳答案

您可能想调用 to_hash在将其呈现为 json 之前在 flash 上的方法。在某些版本的 rails 中,flash.to_json实际上并不返回 JSON 哈希。

def do_stuff
respond_to do |format|
format.html { redirect_to :action => 'index' }
format.json do
render json: flash.to_hash
end
end
end

关于ruby-on-rails - 将 Flash 消息呈现为 JSON 响应的 Rails DRY 机制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11176977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com