簡體   English   中英

如何固定方法“添加”到購物車以在Rails 3.2中填充我的購物車?

[英]How can I fix my method “add” to cart to populate my shopping cart in rails 3.2?

我正在嘗試創建一個簡單的購物車,該購物車將在會話中保存,但到目前為止對我不起作用。 返回錯誤:沒有路線與[GET]“ / cart / 2”匹配

這是我從購物車控制器添加的內容

  def index
    session[:cart] = {}
    render 'cart/index'
  end

def add
    @catalogue = Catalogue.find(params[:id])
    cart = session[:cart]
    cart = {:id => Catalogue.find(params[:id]) , :catalogue => @catalogue.name,category => @catalogue.category, :code => @catalogue.code , :colour=> @catalogue.colour, :description => @catalogue.description, :image  => @catalogue.image , :unitprice => @catalogue.unitprice, :unitquantity => += @catalogue.unitquantity, :unitweight => @catalogue.unitweight }
    session[:cart] = cart
    render 'cart/add'
    end`

任何幫助都感激不盡。

這是我的耙路...耙路

               cart_index GET    /cart/index(.:format)           cart#index
             cart_success GET    /cart/success(.:format)         cart#success
                          PUT    /cart/:id(.:format)             cart#add
                          DELETE /cart/:id(.:format)             cart#remove
                     cart DELETE /cart(.:format)                 cart#clear
            cart_checkout POST   /cart/checkout(.:format)        cart#checkout
        new_admin_session GET    /admins/sign_in(.:format)       devise/sessions
#new
            admin_session POST   /admins/sign_in(.:format)       devise/sessions
#create
    destroy_admin_session DELETE /admins/sign_out(.:format)      devise/sessions
#destroy
           admin_password POST   /admins/password(.:format)      devise/password
s#create
       new_admin_password GET    /admins/password/new(.:format)  devise/password
s#new
      edit_admin_password GET    /admins/password/edit(.:format) devise/password
s#edit
                          PUT    /admins/password(.:format)      devise/password
s#update
cancel_admin_registration GET    /admins/cancel(.:format)        devise/registra
tions#cancel
       admin_registration POST   /admins(.:format)               devise/registra
tions#create
   new_admin_registration GET    /admins/sign_up(.:format)       devise/registra
tions#new
  edit_admin_registration GET    /admins/edit(.:format)          devise/registra
tions#edit
                          PUT    /admins(.:format)               devise/registra
tions#update
                          DELETE /admins(.:format)               devise/registra
tions#destroy
               catalogues GET    /catalogues(.:format)           catalogues#inde
x
                          POST   /catalogues(.:format)           catalogues#crea
te
            new_catalogue GET    /catalogues/new(.:format)       catalogues#new
           edit_catalogue GET    /catalogues/:id/edit(.:format)  catalogues#edit

                catalogue GET    /catalogues/:id(.:format)       catalogues#show

                          PUT    /catalogues/:id(.:format)       catalogues#upda
te
                          DELETE /catalogues/:id(.:format)       catalogues#dest
roy
         new_user_session GET    /users/sign_in(.:format)        devise/sessions
#new
             user_session POST   /users/sign_in(.:format)        devise/sessions
#create
     destroy_user_session DELETE /users/sign_out(.:format)       devise/sessions
#destroy
            user_password POST   /users/password(.:format)       devise/password
s#create
        new_user_password GET    /users/password/new(.:format)   devise/password
s#new
       edit_user_password GET    /users/password/edit(.:format)  devise/password
s#edit
                          PUT    /users/password(.:format)       devise/password
s#update
 cancel_user_registration GET    /users/cancel(.:format)         devise/registra
tions#cancel
        user_registration POST   /users(.:format)                devise/registra
tions#create
    new_user_registration GET    /users/sign_up(.:format)        devise/registra
tions#new
   edit_user_registration GET    /users/edit(.:format)           devise/registra
tions#edit
                          PUT    /users(.:format)                devise/registra
tions#update
                          DELETE /users(.:format)                devise/registra
tions#destroy

最后是我的添加到購物車按鈕

<%= link_to "Add to cart", controller: "cart", action: "add", id: catalogue.id , method: :post %>

編輯:

我已更改鏈接,以將商品從上方添加到購物車中,

<td><%= link_to "Add to cart", add_cart_path(catalogue.id), method: :get %></td>
or 
<td><%= link_to "Add to cart", add_cart_path(catalogue.id), method: :get %></td>

現在出現以下錯誤:

undefined method `add_cart_path' for #<#<Class:0x5e4f070>:0x400cd40>

Extracted source (around line #36):

33:     <td><%= link_to 'Show', catalogue %></td>
34:     <td><%= link_to 'Edit', edit_catalogue_path(catalogue) %></td>
35:     <td><%= link_to 'Destroy', catalogue, method: :delete, data: { confirm: 'Are you sure?' } %></td>
36:     <td><%= link_to "Add to cart", add_cart_path(catalogue.id), method: :post %></td>
37:     
38:   </tr>
39: <% end %>

Rails.root: C:/Users/Vincent/Desktop/BSHCE4/sewingsupplies - 22-03
Application Trace | Framework Trace | Full Trace

app/views/catalogues/index.html.erb:36:in `block in _app_views_catalogues_index_html_erb__837547684_33595272'
app/views/catalogues/index.html.erb:21:in `each'
app/views/catalogues/index.html.erb:21:in `_app_views_catalogues_index_html_erb__837547684_33595272'
app/controllers/catalogues_controller.rb:7:in `index'

仍然不能為我工作。

編輯:

routes.rb

Sewingsupplies::Application.routes.draw do
  # get "cart/index"

  # get "cart/success"

  # put "/cart/:id" => "cart#add"
  # delete "/cart/:id" => "cart#remove"
  # delete "/cart" => "cart#clear"
  # post "/cart/checkout"

  resources :carts do
  member do
    put 'add'
  end
end

  devise_for :admins

  resources :catalogues


  devise_for :users

耙道:

    cart_index GET    /cart/index(.:format)           cart#index
             cart_success GET    /cart/success(.:format)         cart#success
                          PUT    /cart/:id(.:format)             cart#add
                          DELETE /cart/:id(.:format)             cart#remove
                     cart DELETE /cart(.:format)                 cart#clear
            cart_checkout POST   /cart/checkout(.:format)        cart#checkout
        new_admin_session GET    /admins/sign_in(.:format)       devise/sessions
#new
            admin_session POST   /admins/sign_in(.:format)       devise/sessions
#create
    destroy_admin_session DELETE /admins/sign_out(.:format)      devise/sessions
#destroy
           admin_password POST   /admins/password(.:format)      devise/password
s#create
       new_admin_password GET    /admins/password/new(.:format)  devise/password
s#new
      edit_admin_password GET    /admins/password/edit(.:format) devise/password
s#edit
                          PUT    /admins/password(.:format)      devise/password
s#update
cancel_admin_registration GET    /admins/cancel(.:format)        devise/registra
tions#cancel
       admin_registration POST   /admins(.:format)               devise/registra
tions#create
   new_admin_registration GET    /admins/sign_up(.:format)       devise/registra
tions#new
  edit_admin_registration GET    /admins/edit(.:format)          devise/registra
tions#edit
                          PUT    /admins(.:format)               devise/registra
tions#update
                          DELETE /admins(.:format)               devise/registra
tions#destroy
               catalogues GET    /catalogues(.:format)           catalogues#inde
x
                          POST   /catalogues(.:format)           catalogues#crea
te
            new_catalogue GET    /catalogues/new(.:format)       catalogues#new
           edit_catalogue GET    /catalogues/:id/edit(.:format)  catalogues#edit

                catalogue GET    /catalogues/:id(.:format)       catalogues#show

                          PUT    /catalogues/:id(.:format)       catalogues#upda
te
                          DELETE /catalogues/:id(.:format)       catalogues#dest
roy
         new_user_session GET    /users/sign_in(.:format)        devise/sessions
#new
             user_session POST   /users/sign_in(.:format)        devise/sessions
#create
     destroy_user_session DELETE /users/sign_out(.:format)       devise/sessions
#destroy
            user_password POST   /users/password(.:format)       devise/password
s#create
        new_user_password GET    /users/password/new(.:format)   devise/password
s#new
       edit_user_password GET    /users/password/edit(.:format)  devise/password
s#edit
                          PUT    /users/password(.:format)       devise/password
s#update
 cancel_user_registration GET    /users/cancel(.:format)         devise/registra
tions#cancel
        user_registration POST   /users(.:format)                devise/registra
tions#create
    new_user_registration GET    /users/sign_up(.:format)        devise/registra
tions#new
   edit_user_registration GET    /users/edit(.:format)           devise/registra
tions#edit
                          PUT    /users(.:format)                devise/registra
tions#update
                          DELETE /users(.:format)                devise/registra

相應地調整routes.rb文件

從耙路徑輸出中看來,您沒有為購物車資源添加成員方法。 這樣添加:

resources :cards do
  member do
    put 'add'
  end
end

在此處閱讀有關路由的信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM