簡體   English   中英

PayPal與Rails集成

[英]PayPal Integration with Rails

我按照“ 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>

當我嘗試輸入購物車的“顯示視圖”時,會顯示此消息

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

我該如何解決?

您需要將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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM