Как сделать цену 0,00 вместо 0,0? - PullRequest
3 голосов
/ 05 июня 2011

мои пользователи могут вводить и создавать цены.Я хотел знать, как сделать так, чтобы при вводе 23,5 пользователь получал вместо него 23.50 или 0.0 получал 0.00.Как добавить к t.decimal или моей цене: десятичную следующую способность?

Спасибо за помощь!

Ответ (: цена с точностью и точностью)

class CreatePrices < ActiveRecord::Migration
  def self.up
    create_table :prices do |t|
      t.string :price_name
      t.decimal :price, :precision => 10, :scale => 2
      t.date :date

      t.timestamps
    end
  end

  def self.down
    drop_table :prices
  end
end

Schema.rb:

  create_table "prices", :force => true do |t|
    t.string   "price_name"
    t.decimal  "price",      :precision => 10, :scale => 2
    t.date     "date"
    t.datetime "created_at"
    t.datetime "updated_at"
    t.integer  "user_id"
  end

моя форма лесов: <% = f.label: цена%><% = f.text_field: price%>

Тогда, на ваш взгляд, укажите number_to_currency (@ model.attribute):

Цена:

Ответы [ 3 ]

5 голосов
/ 05 июня 2011

Попробуйте использовать опцию :scale в своей миграции.Используйте шкалу 2, если вы хотите две цифры справа от десятичной точки, например:

 t.decimal :price, :precision => 10, :scale => 2
4 голосов
/ 04 июля 2011

Без использования точности и масштаба я сделал это так:

def price #in price model to set price field
 number_to_currency(self[:price], :unit => '')
end

Миграция как:

t.float :price, :default => '1.00'

Просмотреть как:

f.text_field :price
1 голос
/ 08 июня 2011

Я закончил делать масштаб и точность, но также добавил в представление метод number_to_currency.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...