gpt4 book ai didi

ruby-on-rails - 在 api Controller 中调用 create 时未定义的方法 {....}_url

转载 作者:行者123 更新时间:2023-12-01 05:17:07 24 4
gpt4 key购买 nike

我正在开发一个提供一些 json 的 rails 应用程序,我很难理解下面的代码中发生了什么(为了理解问题而进行了简化)。

module Api
class ProjectController < ApplicationController
respond_to :json

def show
x = {"id"=>17, "name"=>"abc", "version"=>1}
respond_with x.to_json, status: 200
end

def create
x = {"id"=>17, "name"=>"abc", "version"=>1}
respond_with x.to_json, status: 200
end
end
end

显示操作工作正常,但是当我调用创建操作时,我得到了

NoMethodError (未定义的方法'{"id":17,"name":"abc","version":1}_url'
Api::ProjectsController:0x007fbb2294cd18)

为什么我在 show 工作正常时收到此错误?是因为 create 发帖而不是 get 吗?

我该如何解决?

感谢您的帮助,祝您有愉快的一天。

最佳答案

问题是您的 Controller 位于模块中( Api )。这会影响命名空间,从而影响路由;您必须将该 namespace 作为您传递给 respond_with 的内容的一部分包含在内。 .

通常情况下,我会引导你到 this stackoverflow answer (信用在那里)。但是由于您使用的是哈希而不是模型,this answer可能更适用。

注意 Rails 如何尝试调用 ..._url方法。 ...是您的哈希,采用 JSON 格式。你需要在这里帮助 Rails 如何渲染。

关于ruby-on-rails - 在 api Controller 中调用 create 时未定义的方法 {....}_url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19129562/

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