rails 4路由,删除默认段

时间:2013-10-09 15:14:51

标签: ruby-on-rails routing ruby-on-rails-4 rails-routing

我在使用rails 4路由时遇到了一些问题。目前路由是这样的。

  analytic_practiceday_path  POST    /analytics/:analytic_id/practiceday(.:format)   analytics#practiceday
  analytic_practiceuser_path GET     /analytics/:analytic_id/practiceuser(.:format) analytics#practiceuser

我希望删除:analytic_id部分。所以它看起来像这样

  analytic_practiceday_path  POST    /analytics/practiceday  analytics#practiceday
  analytic_practiceuser_path GET     /analytics/practiceuser analytics#practiceuser

我目前的代码是

resources :analytics, :only =>"index" do
    post 'practiceday', to: "analytics#practiceday"
    get 'practiceuser', to: "analytics#practiceuser"
end

我知道可以明确声明它,

get '/analytic/practiceday', to: "analytics#practiceday", as: "analytic_practice_day"

但我要定义20~30条路线。如果有人能告诉我一个更好的方法,我将不胜感激。

感谢。

2 个答案:

答案 0 :(得分:1)

尝试

post 'practiceday', to: "analytics#practiceday", on: :collection

编辑:这将颠倒您的路线的语言顺序,从analytic_practiceday_path到practvenay_analytic_path。我不知道这对你来说是不是一个破坏者。如果是这样,您可能被迫使用:as。

指定每条路线

答案 1 :(得分:1)

怎么样:

resources :analytics, only: :index do
  collection do
    post :practiceday
    get  :practiceuser
  end
end