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 部分。