デバイスの SessionController を上書きしました:
app/controllers/customers/sessions_controller.rb で
class Customers::SessionsController < Devise::SessionsController
before_filter :destroy_cart, only: :destroy
def destroy_cart
cart = Cart.find(current_client.cart.id)
cart.destroy
end
end
しかし、destroy メソッドを直接上書きしてコードの後に追加しても、カートは決して破棄されません。カートはsuper
データベース内にまだ存在します (カートを一度だけ作成し、ユーザーが再度ログインしたときにそれを取得できることを知っています)。または、彼が初めてアプリを使用するときに新しいアプリを作成しますが、今はこの方法で試してみたいと思います)、その SessionController で私のコードを読み取っていない場合のようです。
そして、何らかの理由で、私がこのように見解を持っている場合でも:
app/views/customer/registrations
そのビューで行った変更は、次のように変更した場合にのみ反映されます
app/views/devise/registrations
私のroutes.rbは次のとおりです。
devise_for :clients, :controllers => { sessions: 'customers/sessions'}
devise_scope :client do
root to: "customers/Sessions#new"
end
私がdeviseで使用しているモデルはClient
、deviseコントローラーでカートを破壊できないのはなぜですか? ビュー/顧客/セッションを使用できないのはなぜですか?
読んでくれてありがとう。