【问题标题】:No route matches a named route没有路线与命名路线匹配
【发布时间】:2012-03-10 17:59:09
【问题描述】:

我的路由文件是这样的

match '^movies\?.*\&commit=Refresh$', :to =>'movies#filter', :via => :get
resources :movies 
match 'movies/sort_by/:criteria', :to => 'movies#sort_by', :as => 'sort_by'

我想在哪里匹配第一条路线

movies?utf8=✓&ratings[PG-13]=1&ratings[PG]=1&commit=Refresh

。在视图中,我定义了一个将执行第一条路由的 submit_tag:= submit_tag 'Refresh', filter_by_path()。但我不断得到:

没有路由匹配 {:controller=>"movies", :action=>"filter"}

我不知道如何解决这个问题,因为我尝试在 rubular.com 上检查我的路线,它与链接完美匹配。

【问题讨论】:

    标签: ruby-on-rails routes


    【解决方案1】:

    尝试使用 :as 在第一条路线中

    match '^movies\?.*\&commit=Refresh$', :to =>'movies#filter', :as => 'filter_by'
    

    那么在你看来,

    = submit_tag 'Refresh', filter_by_url
    

    【讨论】:

    • 注意:在我的回答中,我使用了 filter_by_url,但 filter_by_path 也可以在这里使用。唯一的区别是 url 是完全限定的,而 path 是相对的。此外,括号是隐含的。如果你愿意,你可以把它们关掉。
    猜你喜欢
    • 1970-01-01
    • 2011-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 2016-02-04
    相关资源
    最近更新 更多