0

文字列「USD」または「EUR」を含むテーブル項目があります。
コントローラー変数で作成します

 def index
    ...
    @currencydebt = CurrencyRate.find( :all, 
     :conditions => ["created_at < ? and currency_id = ?", Date.today, 2], 
     :order => ["created_at DESC"], :limit => 1 )
    ...
    end

魔女は最後の通貨 USD を見つける

** 私からしてみれば**

<% for res in @items %>
     <% for loc in @currencydebt %>
       <%= number_with_precision(((loc.rate.round(2)  * res.payment)), 2) %>
     <% end %>
<% end %>

その結果、通貨 USD での支払人が表示されます。
しかし、アイテムに文字列 USD がある場合、支払い結果が USD であり、アイテムに EUR がある場合、結果として表示されるのはどうすればよいでしょうか。

私のアクティブレコード

create_table "items", :force => true do |t|
  t.string    "name"
  t.string    "currency"
  t.decimal    "payment"
  ...
end

create_table "currency_rates", :force => true do |t|
  t.integer "currency_id"
  t.decimal "rate"
  ...
end  

create_table "currencies", :force => true do |t|
  t.string "name"     #USD or EUR
  t.string "short_name"
end
4

1 に答える 1

1

まず、通貨の取り扱いは常にトリッキーです。このように痛みを和らげる宝石があります。

ただし、差し迫った問題を解決するには、まず基本通貨を決定する必要があります。したがって、基本通貨として USD を維持したい場合は、gem を使用して任意の通貨に切り替えることができます。

于 2013-08-23T15:15:14.753 に答える