0
我目前正在學習如何將stripe整合到簡單的rails應用程序中,但我不確定允許用戶在不同產品中進行選擇的最佳方式是什麼。現在我的設立是,我有所有的索引頁面上列出了我的產品,用戶可以選擇他們希望購買Rails在索引頁上查找單個模型對象
index.html.haml
<% @products.each do |product|%>
<%= product.description%>
<%= product.price%>
# Stripe payment button
<script src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="<%= Rails.configuration.stripe[:publishable_key] %>"
data-description="A month's subscription"
data-amount= <%= product.price*100%>
data-locale="auto"></script>
<% end %>
但是它的產品,上市data-amount
是不實際的量客戶將支付,因爲那是控制器
產品控制器
內確定正如您所看到的,由於@amount=500
,每個產品將收取5美元。我如何動態地將控制器中的@amount
更改爲每個單獨的產品價格?我正在考慮使用每個產品的ID,但我不能簡單地調用@product = Product.find(params[:id])
,因爲我沒有參數,因爲這是索引頁。
上面的代碼是從Stripe's rails checkout guide
不幸的是,'Product.find_by(id:params [:product_id])'不能精確定位單個產品,所以'@ product.amount'不起作用 – user3277633
我認爲你不應該在你的索引頁面。您可以進行自定義操作,並且應該將產品ID提交給該操作,以便控制器可以相應地查找產品。另外,如果在產品表中有一列'金額',那麼它將起作用並且會給你產品的金額。 –
https://stripe.com/docs/checkout/guides/rails 本文也沒有在索引頁面中做到這一點。他們創建一個單獨的'charges_controller'和相應的視圖來使其工作。您可以按自己的方式執行此操作,也可以創建自定義操作。但是,「索引」頁面並不適合做這件事。 –