0

我在创建正确的路线时遇到问题。我想传入我正在处理的元素的 id,但它看起来不正确。

我的路线看起来像

resources :accounts
  match 'account-audit' => 'accounts#audited',:as => :accountaudit

当我耙路线时,我得到

          accounts GET    /accounts(.:format)                          accounts#index
                   POST   /accounts(.:format)                          accounts#create
       new_account GET    /accounts/new(.:format)                      accounts#new
      edit_account GET    /accounts/:id/edit(.:format)                 accounts#edit
           account GET    /accounts/:id(.:format)                      accounts#show
                   PUT    /accounts/:id(.:format)                      accounts#update
                   DELETE /accounts/:id(.:format)                      accounts#destroy
      accountaudit        /account-audit(.:format)                     accounts#audited

当我转到页面时,链接看起来

本地主机:3000/account-audit.3

它应该看起来像

本地主机:3000/帐户/3/审计

我如何让我的路线做我需要做的事情?

4

2 回答 2

0

看起来您正在尝试做的是嵌套路由,这将为您提供用于帐户内部审计的宁静路由

resources :accounts do
  resources :audit
end
于 2013-12-21T23:34:10.053 回答
0

你需要像这样声明路由

resources :accounts do
  get :audit, on: :member, as: :accountaudit
end

这将生成像localhost:3000/accounts/account_id/audit. 检查这个 stackoverlow 问题以了解成员和集合路由。

于 2012-07-17T20:01:43.393 回答