rails - 在link_to / routing上传递id参数

时间:2013-12-31 20:48:00

标签: ruby-on-rails ruby routes link-to

我正在尝试添加结帐链接,以便将客户端定向到结帐视图。 我有ProductsControllerOrdersController,我在其中定义了结帐操作。我这样做是因为我设置它所以产品可以有很多订单。


class OrdersController < ApplicationController

  def checkout
    @product =  Product.find(params[:id])
  end

在我的show.html.erb中,我添加了一行:

<%= link_to 'Contribute Now', order_checkout_path, :id => @product, :controller => "orders", :method => :get %> 

我的路线看起来像:

root :to => 'products#index'
match '/products'               => 'products#index'
get 'order/checkout'

resources :products
resources :orders

在运行rake路线后,我得到:

           root        /                                   products#index
       products        /products(.:format)                 products#index
 order_checkout GET    /order/checkout(.:format)           order#checkout
                GET    /products(.:format)                 products#index
                POST   /products(.:format)                 products#create
    new_product GET    /products/new(.:format)             products#new
   edit_product GET    /products/:id/edit(.:format)        products#edit
        product GET    /products/:id(.:format)             products#show
                PUT    /products/:id(.:format)             products#update
                DELETE /products/:id(.:format)             products#destroy

我还定义了一个checkout.html.erb模板。

完成所有这些后,我不断收到错误:

Routing Error
uninitialized constant OrderController
Try running rake routes for more information on available routes.

我错过了什么?

1 个答案:

答案 0 :(得分:3)

您想要get 'orders/checkout',对应于您的控制器名称中使用的复数形式的“order”。