所以我在routes.rb中有这样的路线:
get "customers/:id/payments", :controller=>"customers", :action=>"payments"
在视图中执行此操作时,UrlHelper将生成此内容(如果有):
link_to customer.name, customers_payments_path(customer)
(customers_payments_path无效)
答案 0 :(得分:3)
get "customers/:id/payments", :controller=>"customers", :action=>"payments", :as => 'customer_payments'
http://guides.rubyonrails.org/routing.html#naming-routes
从以上链接:
您可以使用:as选项指定任何路线的名称。
答案 1 :(得分:2)
我喜欢Gazler的答案,如果它只是一次性的路线,但是如果你已经为客户提供了资源路线,那么我会像这样定义这条路线:
resources :customers do
member do
get :payments
end
end
这样,您仍然可以获得通常从资源路径获得的标准customers_path
和customer_path
帮助程序,但它也会以较短的语法生成customer_payments_path
。< / p>
答案 2 :(得分:0)
您需要添加:as参数来为路径添加名称,以便您可以从url_helper访问它:
get "confirmations/:code" => "confirmations#show", :as => "show_confirmation"
然后在你的views / controllers / tests中:
link_to "Confirm", show_confirmation_url(confirmation)