Stripe Payments 模式或 RoR 应用程序中未显示价格金额
Price amount not showing in Stripe Payments modal or RoR application
我正在尝试将条带支付合并到我的 RoR 应用程序的 pin 模型中,但无济于事。基本上,价格不显示(<%= pin.price%> index.html.erb),并且在选择输入付款处理测试凭据(金额:: '<%= @pin.price %>')。
当我创建一个新的 pin 并包含图片、描述等和价格时 -- 生成的 pin 显示除价格之外的所有输入信息。这是出于某种原因它没有将此信息注册到价格列中的地方。当我 运行 rails 控制价格时:尽管输入了 1,但价格是 "nil"。我不确定为什么。因此,在创建新图钉并输入价格值后,这两个区域都显示为空白。
我在命令行中添加了一个名为 price 的新迁移:
rails generate migration AddPriceToPins price:decimal
这是 app/db/migrate 之后的样子:
class AddPriceToPins < ActiveRecord::Migration
def change
add_column :pins, :price, :decimal
end
end
接下来,我运行"rake db:migrate"成功了
app/views/pins/
<p>
<strong>Manufacturer:</strong>
<%= @pin.manufacturer %>
</p>
<% if @pin.is_multi? %>
<p>
<strong>Quantity:</strong>
<%= @pin.quantity %>
</p>
<% end %>
<p>
<aside id="details-aside" class="col-sm-4">
<!-- <a id="btn-buy" href="receipt.html" class="btn btn-success btn-lg btn-block"><b>I want this!</b></a> -->
<% if @pin.user = current_user %>
<%= form_tag charges_path, id: 'chargesForm' do %>
<script src="https://checkout.stripe.com/checkout.js"></script>
<%= hidden_field_tag 'stripeToken' %>
<%= hidden_field_tag 'stripeEmail' %>
<button id="btn-buy" type="button" class="btn btn-success btn-lg btn-block"><span class="glyphicon glyphicon-heart"></span> I want this!</button>
<script>
var handler = StripeCheckout.configure({
key: '<%= Rails.configuration.stripe[:publishable_key] %>',
token: function(token, arg) {
document.getElementById("stripeToken").value = token.id;
document.getElementById("stripeEmail").value = token.email;
document.getElementById("chargesForm").submit();
}
});
document.getElementById('btn-buy').addEventListener('click', function(e) {
handler.open({
name: 'OMG! <%= @pin.manufacturer %>',
description: '<%= @pin.description %>',
amount: '<%= @pin.price %>'
});
e.preventDefault();
})
</script>
<% end %>
<% else %>
<%= link_to 'I want this!', new_user_registration_path, class: "btn btn-success btn-lg btn-block" %>
<% end %>
app/views/pins/index.html.erb
<%= render 'pages/home' unless user_signed_in? %>
<h3>Listings</h3>
<% if user_signed_in? %>
<%= link_to '+Add Listing', new_pin_path, class: "btn btn-default" %>
<% else %>
<%= link_to '+Add Listing', new_user_session_path, class: "btn btn-default" %>
<% end %>
<%= link_to 'Buy Request', contact_path, class: "btn btn-danger" %>
<div id="pins" class="transitions-enabled">
<% @pins.each do |pin| %>
<div class="box panel panel-default">
<div class="panel-body">
<%= link_to (image_tag pin.image.url(:medium)), pin %>
<p></p>
<strong>Manufacturer:</strong>
<%= pin.manufacturer %>
<p></p>
<strong>Price:</strong>
<%= pin.price %>
<p></p>
<strong>Description:</strong>
<%= pin.description %>
<% if pin.is_multi? %>
<strong>Quantity:</strong>
<%= pin.quantity %>
<% end %>
<p></p>
不确定是什么导致了这个问题。有关如何解决此问题的任何建议?谢谢!
好吧,经过一些来回的最终结果,问题是在输入价格时发生的,而不是输出错误...这让我想到添加价格列到控制器的 permit./require 部分。
我正在尝试将条带支付合并到我的 RoR 应用程序的 pin 模型中,但无济于事。基本上,价格不显示(<%= pin.price%> index.html.erb),并且在选择输入付款处理测试凭据(金额:: '<%= @pin.price %>')。
当我创建一个新的 pin 并包含图片、描述等和价格时 -- 生成的 pin 显示除价格之外的所有输入信息。这是出于某种原因它没有将此信息注册到价格列中的地方。当我 运行 rails 控制价格时:尽管输入了 1,但价格是 "nil"。我不确定为什么。因此,在创建新图钉并输入价格值后,这两个区域都显示为空白。
我在命令行中添加了一个名为 price 的新迁移:
rails generate migration AddPriceToPins price:decimal
这是 app/db/migrate 之后的样子:
class AddPriceToPins < ActiveRecord::Migration
def change
add_column :pins, :price, :decimal
end
end
接下来,我运行"rake db:migrate"成功了
app/views/pins/
<p>
<strong>Manufacturer:</strong>
<%= @pin.manufacturer %>
</p>
<% if @pin.is_multi? %>
<p>
<strong>Quantity:</strong>
<%= @pin.quantity %>
</p>
<% end %>
<p>
<aside id="details-aside" class="col-sm-4">
<!-- <a id="btn-buy" href="receipt.html" class="btn btn-success btn-lg btn-block"><b>I want this!</b></a> -->
<% if @pin.user = current_user %>
<%= form_tag charges_path, id: 'chargesForm' do %>
<script src="https://checkout.stripe.com/checkout.js"></script>
<%= hidden_field_tag 'stripeToken' %>
<%= hidden_field_tag 'stripeEmail' %>
<button id="btn-buy" type="button" class="btn btn-success btn-lg btn-block"><span class="glyphicon glyphicon-heart"></span> I want this!</button>
<script>
var handler = StripeCheckout.configure({
key: '<%= Rails.configuration.stripe[:publishable_key] %>',
token: function(token, arg) {
document.getElementById("stripeToken").value = token.id;
document.getElementById("stripeEmail").value = token.email;
document.getElementById("chargesForm").submit();
}
});
document.getElementById('btn-buy').addEventListener('click', function(e) {
handler.open({
name: 'OMG! <%= @pin.manufacturer %>',
description: '<%= @pin.description %>',
amount: '<%= @pin.price %>'
});
e.preventDefault();
})
</script>
<% end %>
<% else %>
<%= link_to 'I want this!', new_user_registration_path, class: "btn btn-success btn-lg btn-block" %>
<% end %>
app/views/pins/index.html.erb
<%= render 'pages/home' unless user_signed_in? %>
<h3>Listings</h3>
<% if user_signed_in? %>
<%= link_to '+Add Listing', new_pin_path, class: "btn btn-default" %>
<% else %>
<%= link_to '+Add Listing', new_user_session_path, class: "btn btn-default" %>
<% end %>
<%= link_to 'Buy Request', contact_path, class: "btn btn-danger" %>
<div id="pins" class="transitions-enabled">
<% @pins.each do |pin| %>
<div class="box panel panel-default">
<div class="panel-body">
<%= link_to (image_tag pin.image.url(:medium)), pin %>
<p></p>
<strong>Manufacturer:</strong>
<%= pin.manufacturer %>
<p></p>
<strong>Price:</strong>
<%= pin.price %>
<p></p>
<strong>Description:</strong>
<%= pin.description %>
<% if pin.is_multi? %>
<strong>Quantity:</strong>
<%= pin.quantity %>
<% end %>
<p></p>
不确定是什么导致了这个问题。有关如何解决此问题的任何建议?谢谢!
好吧,经过一些来回的最终结果,问题是在输入价格时发生的,而不是输出错误...这让我想到添加价格列到控制器的 permit./require 部分。