加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 在api控制器中调用create时未定义的方法{…} _

发布时间:2020-12-17 02:05:18 所属栏目:百科 来源:网络整理
导读:我正在开发一个为json提供服务的rails应用程序,我很难理解下面代码中的内容(为了解问题而简化). module Api class ProjectController ApplicationController respond_to :json def show x = {"id"=17,"name"="abc","version"=1} respond_with x.to_json,stat
我正在开发一个为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,"version"=>1}
      respond_with x.to_json,status: 200
    end
  end
end

show动作很好但是当我调用create动作时我得到了

NoMethodError(未定义方法'{“id”:17,“name”:“abc”,“version”:1} _url’for
API :: ProjectsController:0x007fbb2294cd18)

为什么我在演出工作正常时会收到此错误?是因为创造了一个帖子而不是一个获取?

我该如何解决?

感谢您的帮助,祝您度过愉快的一天.

解决方法

问题是您的控制器位于模块(Api)中.这会影响名称空间,从而影响路由;您必须将该命名空间包含在您传递给respond_with的内容中.

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读