根据我的阅读,我可以使用以下代码响应json请求:
respond_to do |format|
format.json { render json: t.response }
end
我的问题是t.response已经是json格式 - 我认为我的应用程序正在破解,因为渲染json:正在将其重新转换为json。我该如何避免这种情况,只需返回t.response。
请注意,如果我只是将t.response作为控制器中的最后一行,则会渲染相应的视图 - 这显然不是json。
谢谢!
编辑:我正在尝试让这个工作,所以我可以通过tropo发送短信。如果您之前使用过tropo,您对如何正确回复tropo有任何建议吗?答案 0 :(得分:5)
render json:
只是将内容类型设置为application / json(如果对象响应to_json
,则对传递给它的对象调用to_json
)。它不会转换或以某种方式修改您的回复。
答案 1 :(得分:2)
我将向您展示Rails如何处理转换为json格式。它基本上在线:
json = json.to_json(options) unless json.kind_of?(String)
因此,不转换字符串,其他对象通过to_json
方法转换为String。如果您的t.response
返回字符串,则不会执行转换。
答案 2 :(得分:1)
您可以改为渲染文字
respond_to do |format|
format.json { render text: t.response }
end