モデルブックを持っています。名前、作成者、価格などのプロパティがあります。また、サイトに通貨スイッチャーがあります。ユーザーが選択した通貨に応じて価格をフォーマットしたい。Ruby には number_to_currency 関数がありますが、価格の特別な書式設定が必要なため、これは必要ありません (ロシア語の場合: 1 рубль、2 рубля、5 рублей)。そこで、仮想属性 price_formatted を作成しました。
def price_formatted
case cookie[:currency]
when 'usd'
'<span>$'+price.to_s+'</span>'
when 'eur'
'<span>€'+price.to_s+'</span>'
else
'<span>'+price.to_s+'</span> '+Russian.p(price, 'рубля', 'рублей', 'рублей')
end
end
Russian.p は、数字のロシア語の複数形を作成します。エラーは、price_formatted 関数で Cookie が定義されていないことです。
PSこのことを機能させる別の「正しい」方法がある場合は、教えてください。