-2

カートコントローラー - 削除機能の宣言に問題があります

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
4

1 に答える 1

0

まず第一に、あなたがあなたの問題を再投稿したことに気づきましたが、今回はもう少し説明的です.今後の問題については、チケットを作成する前によく考え、コミュニティをきれいに保つために改良が必要な以前のチケットを編集する時間をとってください.

OT: 基本的な CRUD 機能を使用してアイテムとカートのリソースを作成したようですが、その方法は「レールの方法」とは言えません。scaffold コマンドを使用してプロジェクト bij を開始し、この CRUD とルートがどうあるべきかを学習することをお勧めします。実装されました。

このトピックについてもっと学びたい場合は、http: //guides.rubyonrails.org/getting_started.htmlを読むことをお勧めします。

また、「h」構文を使用して出力をエスケープしていることに気付きました。これは、Rails 2.3.8 の前にのみ行われます。開始時に新しい Rails バージョンを使用することをお勧めしますか?

于 2013-02-20T13:42:38.130 に答える