如何在我的购物车中添加删除功能?

时间:2013-02-20 13:14:42

标签: ruby-on-rails

购物车控制器 - 我无法声明删除功能

class CartController < ApplicationController

def add
id = params[:id]

cart = session[:cart] ||= {}
cart[id] = (cart[id] || 0) + 1

redirect_to :action => :index
end

def index
@cart = session[:cart] || {}
end

end

主要项目页面 - 已经定义了删除项目的链接,我在控制器部分中感到困惑

<h1 id="prodhead">Products</h1>


<table class="catalog">

<% for item in @items %>
<tr>
<td>
    <div class="image">
        <%= link_to (image_tag item.image_url), item %>
    </div>
</td>
<td>
    <div class="title">
        <%= link_to item.title, item %>
    </div>
    <div class="description">
        <%=h item.description %>
    </div>
    <div class="links">
        <% if session[:login] == 1 %>
            <%= link_to 'Edit Item', edit_item_path(item) %> |
            ***<%= link_to 'Delete Item', item, :confirm => 'Are you sure?', :method =>   :delete %>***
        <% else %>
            <%= link_to "Add to Cart", :controller => :cart, :action => :add, :id => item %><br />
        <% end %>
    </div>
    <div class="price"> 
        <%= number_to_currency(item.price, :unit => "&dollar;") %>
    </div>
</td>
</tr>

<% end %>

</table>


<% if session[:login] == 1 %>
<p><%= link_to 'New item', new_item_path %></p>

<% end %>

Routes.rb - 删除路由也已定义

OnlineShop::Application.routes.draw do
get "cart/index"

get "cart/add"

get "cart/checkout"

get "cart/del"

get "site/about"

get "site/contact"

get "user/admin_login"

get "user/logout"

resources :items

1 个答案:

答案 0 :(得分:0)

首先,我注意到你转发了你的问题,但是这次更具描述性,请为未来的问题,在创建一张票之前考虑一下并花时间编辑之前需要精心保持社区清洁的门票。

OT: 我看到你已经创建了具有基本CRUD功能的项目和购物车资源,但是你做的方式并不是“导轨方式”我建议你使用scaffold命令启动一个项目bij,以了解如何实现这个CRUD和路由。

如果您愿意进一步了解该主题,请参阅:http://guides.rubyonrails.org/getting_started.html

另外我注意到你使用“h”语法来转义输出这只是在Rails 2.3.8之前我可以建议在开始时使用更新的rails版本吗?