Rails button_在狂欢结账期间删除信用卡

时间:2014-07-29 18:01:40

标签: ruby-on-rails ruby spree

我正在尝试让用户编辑他们存档的信用卡数量,他们可以选择删除它。

在传统的导轨中它会很简单,但我是新手狂欢,不确定在结账时情况如何。

观点:

  - @cards.each do |card|
    = card.last_digits
    = "#{card.month+'/'+card.year}"
    = button_to "delete", {:controller => :credit_cards,
          :action => 'destroy', :id => card.id, :method => :delete, :confirm => 'are you sure?'}

控制器:

module Spree
  class CreditCardsController < Spree::BaseController
    def destroy
      @credit_card = Spree::CreditCard.find(params["id"])
      @credit_card.destroy

.
.
.

现在生成的按钮似乎有效,当我从结账/付款按下它进入结账/更新/付款然后在结账/确认时停止但信用卡未被删除。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

控制器的文件名是什么?你打算覆盖spree类CreditCardsController吗?如果是的话:

Spree::CreditCardsController.class_eval do
  def destroy
    @credit_card = Spree::CreditCard.find(params["id"])
    @credit_card.destroy
    ...
  end
end

...但我认为控制器方法在Api命名空间中。怎么样调用drop_payment_source方法? https://github.com/spree/spree/blob/45cec5215763da26e0089415f4c49afffd683bd9/core/app/models/concerns/spree/user_payment_source.rb#L13

...如果你想定义自己的CreditCardsController类,那么你应该在routes.rb文件中设置一些东西,这样你就可以在button_to方法中使用路由助手方法(而不是调用控制器和方法名称)。另外,您需要在destroy方法中重定向或使用某些内容。也许到checkout_path?运行rake routes以查找更多内容。