【问题标题】:trouble getting route to work in Rails在 Rails 中无法找到上班路线
【发布时间】:2012-03-08 04:28:46
【问题描述】:

我的routes.rb 中有以下内容:

resources :resources
match "/resources/:category" => 'resources#index', :as => :resources

在我的 index.html.erb 中,我有以下内容:L

<% @categories.each do |category| %>
  <li class="active">
    <%= link_to category.name, resour_path(:category=>category.name.parameterize), :class => "large", remote => true %>
  </li>
<% end %>

我想提交ResourcesController 的索引操作,因为我想在页面上显示不同的项目作为过滤器。

链接当前正在给出错误,因为它们正在调用显示操作而不是索引操作。

如何让他们提交到路由控制器的索引操作?

【问题讨论】:

  • 请发布错误以及rake routes的相关输出。

标签: ruby-on-rails routes ruby-on-rails-3.2


【解决方案1】:

前往路线时永远不会到达match "/resources/:category" 行。路径 /resources/some-categoryresources :resources 匹配,some-category 被视为 show 操作的 id。

选项 1

切换行,以便首先匹配 match 行。

match "/resources/:category" => 'resources#index', :as => :resources
resources :resources

选项 2

转身

resources :resources

进入

resources :resources, :except => :show

参考文献

http://guides.rubyonrails.org/routing.html中所述:

Rails 路由按照指定的顺序进行匹配,因此如果您在 get 'photos/poll' 上方有一个资源 :photos,则资源行的 show action 路由将在 get 行之前匹配。要解决此问题,请将 get 行移到资源行上方,以便首先匹配。

【讨论】:

  • 我会选择选项 1。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-15
  • 2011-07-05
  • 1970-01-01
  • 2017-10-10
  • 2017-11-19
  • 1970-01-01
相关资源
最近更新 更多