【问题标题】:PayPal Integration with RailsPayPal 与 Rails 的集成
【发布时间】:2015-11-13 15:20:46
【问题描述】:

我正在关注“Rails Casts ep 141”,将基本的贝宝集成到我的项目中,但它失败了,我找不到问题。

这是我的购物车模型(使用 gem 'acts_as_shopping_cart)

class ShoppingCart < ActiveRecord::Base
  acts_as_shopping_cart

  def self.paypal_url
    values ={
        :business => 'admin@ing.com',
        :cmd => '_cart',
        :upload => 1,
        :invoice => id
    }
    @shopping_cart.shopping_cart_items.each_with_index do |item, index|
        values.merge!({
            "amount_#{index+1}" => item.precio,
            "item_name_#{index+1}" => item.nombre,
            })
    end
    "https://www.sandbox.paypal.com/cgi-bin/webscr?"+values.map{|k,v| "#{k}=#{v}"}.join("&")
  end

end 

我在这里调用方法 paypal_url 的地方

<title>Tu carrito</title>
<body>
  <div class="container">
  <div class="row">
  <div class="col s12">
    <ul class="collection with-header">
      <li class="collection-header"><h4>Tu lista de productos</h4></li>
      <% @shopping_cart.shopping_cart_items.each do |sc| %>
        <li class="collection-item"><div><%= link_to Article.find(sc.item_id).nombre, article_path(Article.find(sc.item_id)) %>
                  <%= link_to shopping_carts_path(:product_id => sc.item_id), method: :delete, data:{ confirm: "Quitar este elemento del carrito?" }, class: "right" do%>
                  <i class="material-icons">delete</i>
                  <%end%></li>
      <%end%>
    </ul>
    <%= link_to "Checkout", @shopping_cart.paypal_url() %>
  </div>
  </div>
</div>
</body>

当我尝试进入我的购物车的 Shows View 时,它给了我这条消息

undefined method `paypal_url' for #<ShoppingCart:0x007fd00d3e9358>

我该如何解决?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4 paypal


    【解决方案1】:

    您需要将 paypal_url 定义为实例方法,而不是类方法。 像这样:

    def paypal_url
        values ={
            :business => 'admin@ing.com',
            :cmd => '_cart',
            :upload => 1,
            :invoice => id
        }
        shopping_cart_items.each_with_index do |item, index|
            values.merge!({
                "amount_#{index+1}" => item.precio,
                "item_name_#{index+1}" => item.nombre,
                })
        end
        "https://www.sandbox.paypal.com/cgi-bin/webscr?"+values.map{|k,v| "#{k}=#{v}"}.join("&")
    end
    

    【讨论】:

      猜你喜欢
      • 2019-12-04
      • 2014-06-18
      • 2015-09-05
      • 2013-11-11
      • 2013-09-18
      • 2017-10-25
      • 2014-05-20
      • 2017-11-25
      • 2012-06-29
      相关资源
      最近更新 更多