gpt4 book ai didi

ruby - 为什么 respond_with JSON 不起作用?

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

尝试在 Rails Controller 中使用返回时遇到问题。这不起作用:

class UsersController < ApplicationController
respond_to :json

def create
@user = User.create params[:user_info]
respond_with @user
end
end

这个有效:

class UsersController < ApplicationController
respond_to :json

def create
@user = User.create params[:user_info]
respond_with @user do |format|
format.json { render json: @user.to_json }
end
end
end

为什么?这是我在使用不起作用的错误时在服务器日志中遇到的错误:

NoMethodError (undefined method `user_url' for #<UsersController:0x007fd44d83ea90>):
app/controllers/users_controller.rb:7:in `create'

我的路线是:

resources :users, :only => [:create]

最佳答案

responds_with 尝试重定向到 user_url,因此它会在您的用户 Controller 中寻找 show 方法,而您没有,因为您的路线仅限于 create 方法。由于默认情况下 create 方法会重定向到 show 方法,因此这是行不通的。但是在你的第二个版本中,你实际上是在渲染一些东西,所以不会发生重定向。

如果你想要的话,你可以给 respond_with 一个 :location 选项,像这样:

respond_with(@user, :location => home_url)

或像在第二个版本中那样使用渲染版本。

关于ruby - 为什么 respond_with JSON 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13271690/

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