gpt4 book ai didi

ruby - Rails 3 应用程序的 respond_with 语法有奇怪的行为吗?

转载 作者:数据小太阳 更新时间:2023-10-29 07:07:58 25 4
gpt4 key购买 nike

在为提供 json 的 Rails 3.0.3 应用构建 API 时,发生了一些意外行为。

以下是 Controller 。问题是关于 respond_with。我已经在应用程序 Controller 中有 respond_to :json

create Action 正常运行,创建后数据也被发回。

但是更新操作的 respond_with 不会发回任何数据。

响应主体为空白。

def create
line = get_line
input_header = line.input_headers.create(params[:input_header])
respond_with(input_header, :location => api_v1_line_input_header_url(line,input_header))
end

def show
input_header = get_input_header
respond_with(input_header.to_json)
end

def update
input_header = get_input_header
input_header.update_attributes(params[:input_header])

respond_with(input_header, :location => api_v1_line_input_header_url(input_header.line,input_header))

# render :json => input_header
end

当我使用 render :json => input_header 而不是 respond_with 时,它起作用了。这是为什么?

最佳答案

首先,show方法不是很好,不需要调用#to_json方法,因为respond_with检测到请求时会自动调用对应的方法需要json内容或xml内容。

其次,get_input_header 方法中到底发生了什么?你能用标准的 Rails InputHeader.find(params[:id]) 解决方案替换它一次吗?

关于ruby - Rails 3 应用程序的 respond_with 语法有奇怪的行为吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6057977/

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