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

未定义的方法`evm_url‘
EN

Stack Overflow用户
提问于 2015-06-06 23:26:06
回答 1查看 30关注 0票数 1

我有一个编辑和更新方法,如下:

cmdbs_controller.rb

代码语言:javascript
复制
def edit
    @evm = Evm.find(params[:id])
end

def update
    @evm = Evm.find(params[:id])
  if @evm.update(evm_params)
    redirect_to @evm
  else
     render 'edit'
  end
end

和路由如下:

代码语言:javascript
复制
resources :cmdbs do
   get :autocomplete_client_name, :on => :collection
   collection do
     get 'test'
   end
end

问题是我在提交我的编辑时收到一个错误:

代码语言:javascript
复制
undefined method `evm_url' for #<CmdbsController:0x007fb33ac47d00>

并将我指向redirect_to @evm行。顺便说一句,我使用的是patch,我的url看起来像这样:

代码语言:javascript
复制
http://localhost:3000/cmdbs/1
EN

回答 1

Stack Overflow用户

发布于 2015-06-07 00:16:19

redirect_to @evm这一行将转换为redirect_to evm_path(@evm.id)。它使用evm_path,因为@evm的类是Evm。因此,它希望在路由中有像resources :evms这样的东西。这意味着您必须有另一个名为EvmsController的控制器。执行redirect_to @evm操作基本上会重定向到EvmsController的show操作。我不确定这是否是您希望发生的事情,但这就是Rails正在尝试做的事情。如果路由文件中没有任何其他内容,Rails就不知道重定向到哪里。

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

https://stackoverflow.com/questions/30684535

复制
相关文章

相似问题

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