gpt4 book ai didi

ruby-on-rails - 尝试在 Heroku 上的 Rails 中将价格设置为扩展十进制/BTC

转载 作者:数据小太阳 更新时间:2023-10-29 08:09:05 25 4
gpt4 key购买 nike

所以我对 Rails 比较陌生,但一直在尝试建立一个小商店来出售一些比特币的东西。当我在我的本地环境中运行我的店面时,我的定价看起来不错(即一本 0.001 BTC 的书),但是当我将它实时推送到 Heroku 时,我的价格四舍五入到最接近的第 100 位。(即 .016 变成 .02 或 . 001 变为 .00)。有任何想法吗?这是我的 product.rb 文件,用于验证我的“:price”。

class Product < ActiveRecord::Base
attr_accessible :price, :title, :image_url, :description, :orders
has_many :line_items
has_many :orders, through: :line_items
before_destroy :ensure_not_referenced_by_any_line_item

validates :title, :description, :image_url, presence: true
validates :price, numericality: {greater_than_or_equal_to: 0.00000001}
validates :title, uniqueness: true
validates :image_url, allow_blank: true, format: {
with: %r{\.(gif|jpg|png)$}i,
message: 'must be a URL for GIF, JPG, or PNG image.'
}

这是我的 _line_item.html.erb 文件:

<% if line_item == @current_item %>
<tr id="current_item">
<% else %>
<tr>
<% end %>
<td><%= line_item.quantity %>&times;</td>
<td><%= line_item.product.title %></td>
<td class="item_price"><%= line_item.total_price %>&nbspBTC</td>
</tr>

我的代码基于 Agile Web Development with Rails 一书的 Depot 应用程序...感谢您的帮助!

最佳答案

在进一步检查我的数据库迁移 (depot/db/timestamp_create_products.rb) 后,我意识到我已将精度设置为 8,将比例设置为 2:

class CreateProducts < ActiveRecord::Migration
def change
create_table :products do |t|
t.string :title
t.text :description
t.string :image_url
t.decimal :price, precision: 8, scale: 2

t.timestamps
end
end
end

所以我只需要将其更改为:

class CreateProducts < ActiveRecord::Migration
def change
create_table :products do |t|
t.string :title
t.text :description
t.string :image_url
t.decimal :price, precision: 9, scale: 8

t.timestamps
end
end
end

感谢您告诉我 Rich 和 Mike 需要注意的地方!

关于ruby-on-rails - 尝试在 Heroku 上的 Rails 中将价格设置为扩展十进制/BTC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20115655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com