2017-11-30 19 views
-3

"42/100"のように番号を印刷したい。このフォーマットは、私が2つの異なるモデルで使うつもりの関数によって行われるべきです。私はその方法をどこに加えるべきですか?Ruby on rail書式番号

module FormattingHelper 
    MAXIMUM_VALUE = 100.freeze # Change it here. 

    def self.divide_by_maximum_value(str) 
    "#{str}/#{MAXIMUM_VALUE}" 
    end 
end 

formatting_helper.rbそして、あなたはどこからでもFormattingHelper.divide_by_maximum_valueを呼び出すことができるようになります:大丈夫

+0

を作成し、それは常に '/ 100'または'番号(もしそうであれば、どのように)に基づいて変更100'ということになるだろうか? –

+1

なぜ "/ 100"ですか? –

+1

user_database.rbとは何ですか? –

答えて

0

は、限られた説明のとおり、ここで私が提案するものです。例えば

FormattingHelper.divide_by_maximum_value('42') 
=> "42/100" 
+0

申し訳ありませんが、これは非常にばかげた質問ですが、新しい方法でそれを行う方法はわかりませんし、もし私がapplication_helperでそれらのメソッドを定義するとどうなるか教えてください。 –

+0

ApplicationHelperメソッドは、あなたのビューで利用可能になります。しかし、あなたのモデルといくつかのサービスuser_database.rbでそれらを呼び出す必要があるようです。ですから、別のミックスインをここで定義しなければなりません。 /app/mixins/formatting_helper.rbのどこかにあります。 –

+0

この場合、100を超える '' A ''を置くこともできます。これは奇妙に見えます。代わりに、['Rational'](http://ruby-doc.org/core-2.2.0/Rational.html)クラスを使用するのでしょうか?例えば'Rational.new(str、MAXIMUM_VALUE).to_s' – engineersmnky

0

あなたはあなたがそれらのガイドを除き、レール公式ガイド

number_to_percentage(42)           
    # => 42.000% 

にルビーから number helperを使用することができる割合に番号を作成したい場合はジャグディープのsingthが言ったように、あなたはモジュールを作成する必要があります。 またはラムダ

num_formatter = ->(x,y='100') { x.to_s+"/#{y}" } 
    num_formatter.call(42) 
    # => "42/100" 
+0

今後「100」が変更される予定です。 –