首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有路线匹配"/update_states“

没有路线匹配"/update_states“
EN

Stack Overflow用户
提问于 2014-09-16 14:41:46
回答 4查看 123关注 0票数 0

我正在使用指南创建简单的动态选择。

我已经完成了一半,但是当我从下拉菜单中选择区域时,它不会显示任何子记录。在我的例子中,各州。

我使用Firebug检查错误,我在选择区域之后就得到了西塞错误。上面写着

代码语言:javascript
复制
No route matches [GET] "/update_states"

但是我再次检查了我的routes.rb文件,如下所示:

代码语言:javascript
复制
get 'home/update_states', as: 'update_states'
get 'home/show'

所以我想知道是什么导致了这个错误?

Home_controller.rb

代码语言:javascript
复制
class HomeController < ApplicationController
 def index
   @form = Form.new
    @regions = Region.all
    @states = State.where("region_id = ?", @regions.first.id)
  end

  def show
    @state = State.where("id = ?", params[:form][:state_id])
  end

  def update_states
    @states = State.where("region_id = ?", params[:region_id])
    respond_to do |format|
      format.js
    end
  end
end

提前谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-09-16 15:15:37

您需要映射路径以包括控制器和操作。

代码语言:javascript
复制
get 'home/update_states' => 'home#update_states', as: 'update_states'
get 'home/show' => 'home#show'

此映射要求您有一个HomeController,它有两个方法(操作) update_statesshow

第二个问题是,您正在/update_states上执行一个/update_states,但是您还没有映射它!

试着选择/home/update_states路线。

若要检查所有可用的路由和映射,请在控制台中使用rake routes

编辑:

好的,看看您的HomeController,您的update_states操作查找具有region_id匹配的params[:region_id]的状态。但这不可能在任何地方通过!

要做到这一点,一种方法是将路线改为如下:

代码语言:javascript
复制
get 'home/:region_id/update_states' => 'home#update_states', as: 'update_states'

这样就会改变路线

代码语言:javascript
复制
GET /home/12/update_states

这将查找带有region_id=12的状态。

请注意,这只是传递参数的一种方式,您需要确保路由模式不发生冲突。

票数 1
EN

Stack Overflow用户

发布于 2014-09-16 14:45:52

上面的代码没有正确地引用controller#action。就像这样,

代码语言:javascript
复制
get 'home/update_states' => 'home#update_states', as: 'update_states'
get 'home/show' => 'home#show'
票数 1
EN

Stack Overflow用户

发布于 2014-09-16 14:48:45

我认为最好的方法是:

代码语言:javascript
复制
 match '/update_states' => 'home#update_states', :as => 'update_states'
 match '/show', to: 'home#show', via: 'get'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25871743

复制
相关文章

相似问题

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