1

我在 routes.db 中定义了一个嵌套资源:

resources :accounts do
  resources :transactions do 
end

我想创建一个类似于“new”的路由,但操作是 new_transfer,这将允许我处理一种特殊类型的新事务:

new_account_transaction GET    /accounts/:account_id/transactions/new(.:format)      transactions#new

我试图定义包括方法定义的资源:

resources :accounts do
    resources :transactions
    member do 
      get 'new_transfer'
    end
end

或者

resources :accounts do
   resources :transactions do 
      member do 
         get 'new_transfer'
      end      
   end
end

但我得到:

new_transfer_account GET    /accounts/:id/new_transfer(.:format)                  accounts#new_transfer

或者

new_transfer_account_transaction GET    /accounts/:account_id/transactions/:id/new_transfer(.:format) transactions#new_transfer

第二个很接近,但我认为它确实应该是 transactions/new_transfer。如果这是我能做的最好的,那么我就找不到满足创建新链接的路径。

任何帮助,将不胜感激。

还尝试添加特定匹配。这条路线的 link_to 是什么?

match '/accounts/:account_id/transactions/new_transfer', to: 'transactions#new_transfer'

/accounts/:account_id/transactions/new_transfer(.:format) transactions#new_transfer
4

1 回答 1

0

您是否尝试过路线的匹配方法?

他们在 Rails Guides 上的例子:

match "/patients/:id" => "patients#show"

希望这可以帮助!

于 2012-10-05T14:46:15.610 回答