【问题标题】:Change URI pattern for a single controller action更改单个控制器操作的 URI 模式
【发布时间】:2014-02-20 12:01:07
【问题描述】:

我有以下路线文件:

routes.rb

root "pages#home"
resources :businesses
match ':id' => 'businesses#show', :via => [:get]

这给了我以下路线:

              Prefix Verb   URI Pattern                       Controller#Action
                root GET    /                                 pages#home
          businesses GET    /businesses(.:format)             businesses#index
                     POST   /businesses(.:format)             businesses#create
        new_business GET    /businesses/new(.:format)         businesses#new
       edit_business GET    /businesses/:id/edit(.:format)    businesses#edit
            business GET    /businesses/:id(.:format)         businesses#show
                     PATCH  /businesses/:id(.:format)         businesses#update
                     PUT    /businesses/:id(.:format)         businesses#update
                     DELETE /businesses/:id(.:format)         businesses#destroy
                     GET    /:id(.:format)                    businesses#show

我有一个“企业”表单,完成后会将我重定向到以下内容:

http://localhost:3000/businesses/BusinessToShow

如何从该 URL 重定向中删除控制器名称(企业)?

我能否输入一个仅为 business_path 更改 URI 模式的路由?

我特别有路由 'match ':id' => 'businesses#show', :via => [:get]' 这样就可以完成搜索并执行显示操作而无需控制器名称,现在只是重定向导致问题。

提前谢谢你

【问题讨论】:

  • 你能告诉我们你说搜索后重定向的代码吗?或者可能是整个控制器?我不太确定我完全理解你的问题:(
  • 我在提交并执行创建操作后被重定向。简而言之,我希望我当前的 rake 路线中的“business GET /businesses/:id(.:format)businesss#show”行读取“business GET /:id(.:format)businesss#show”

标签: ruby-on-rails routes


【解决方案1】:

以下路线配置将解决您的问题。

  resources :businesses, :except => [:show, :update, :destroy]
  resources :businesses, :path => '/', :only => [:show, :update, :destroy]

【讨论】:

  • 太棒了!正是我需要的。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多