首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NoMethodError:未定义方法`zombie_url‘

NoMethodError:未定义方法`zombie_url‘
EN

Stack Overflow用户
提问于 2015-02-19 14:10:06
回答 2查看 92关注 0票数 0

这是我的测试:

代码语言:javascript
复制
require 'test_helper'

class CreatingZombiesTest < ActionDispatch::IntegrationTest
  setup { host! 'api.example.com' }

  test 'creates a new zombie' do
    post '/zombies',
      { zombie:
        { name: 'brain_eater', weapon: 'teeth'}
      }.to_json,
      { 'Accept' => Mime::JSON, 'Content-Type' => Mime::JSON.to_s }

      assert_equal 201, response.status

    end
  end

主计长:

代码语言:javascript
复制
def create
    @zombie = Zombie.new(zombie_params)
    if @zombie.save
      render json: @zombie, status: 201, location: @zombie
    end
  end

我不断地发现这个错误,搜索是没用的。

代码语言:javascript
复制
CreatingZombiesTest#test_creates_a_new_zombie:
NoMethodError: undefined method `zombie_url' for #<Api::ZombiesController:0x007f8ef9f6cd60>
    app/controllers/api/zombies_controller.rb:22:in `create

路线:

代码语言:javascript
复制
  Prefix Verb   URI Pattern                 Controller#Action
    api_zombies GET    /zombies(.:format)          api/zombies#index {:subdomain=>"api"}
                POST   /zombies(.:format)          api/zombies#create {:subdomain=>"api"}
 new_api_zombie GET    /zombies/new(.:format)      api/zombies#new {:subdomain=>"api"}
edit_api_zombie GET    /zombies/:id/edit(.:format) api/zombies#edit {:subdomain=>"api"}
     api_zombie GET    /zombies/:id(.:format)      api/zombies#show {:subdomain=>"api"}
                PATCH  /zombies/:id(.:format)      api/zombies#update {:subdomain=>"api"}
                PUT    /zombies/:id(.:format)      api/zombies#update {:subdomain=>"api"}
                DELETE /zombies/:id(.:format)      api/zombies#destroy {:subdomain=>"api"}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-19 14:51:59

好吧,我解决了,应该是

代码语言:javascript
复制
location: api_zombie_url(zombie)

我需要路由中的api_,因为我的控制器在Api命名空间中,所以没有定义zombie_url,但是定义了api_zombie_url。

票数 0
EN

Stack Overflow用户

发布于 2015-02-19 14:29:48

你设置routes.rb了吗?ie:

代码语言:javascript
复制
 post 'zombie/create'

代码语言:javascript
复制
rake routes

在您的终端并得到相应的链接。注-如果您的链接是zombie_create,那么您将不得不追加路径或url,这取决于您要完成的任务。(zombie_create_url或zombie_create_path)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28608499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档