当URL路径与方法名称相同时,Rails路由速记?

时间:2018-02-28 14:49:39

标签: ruby-on-rails url-routing

我的config/routes.rb中的一个条目:

get "enumerators/job_type", to: "enumerators#job_type"

正如您所看到的,控制器中对应的URL路径和方法名称是相同的。在这种情况下,Rails是否提供了简写?

3 个答案:

答案 0 :(得分:1)

是的!只要您的控制器名称为get "enumerators/job_type"且方法为EnumeratorsController

,Rails magic就会让您在路径文件中写下:job_type

请记住,您始终可以通过运行bundle exec rake routes

来检查其创建的路线

答案 1 :(得分:1)

您可以使用如下所示的命名空间:

namespace :enumerators do 
  get "job_type" 
end

命名空间的更多信息:

http://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing

答案 2 :(得分:1)

将两个答案混合在一起,这是进行路由的最差方式的最佳方法:

  1. 最佳

    const store = createStore(rootReducer)
    
    const App = () => (
      <Provider store={store} >
        <BrowserRouter history={history}>
          <Switch>
            <Route exact path='/' component={WelcomeScreen} />
            <Route path='/main' component={StudiosList} />
          </Switch>
        </BrowserRouter>
      </Provider>
    )
    
  2. 更糟

    namespace :enumerators do 
      get "job_type"
      get "something_else"
    end
    
  3. 最差

    get "enumerators/job_type"
    get "enumerators/something_else"