0

こんにちは、ウェブサイトに星の評価を表示しようとしています。これまでのところ、評価を数値の形式で取得していますが、その数値を掛けて、ループまたは同様のものを使用して等量の星を表示したいと考えています。つまり、評価が4 の場合は 4 つ星の写真が印刷されますが、アイデアはありますか?

これまでの私のコード...

number_with_precision(product.no_of_stars, :precision => 1) // この行は数値を出力し、正常に動作します

私はこのようなことをしようとしています...

product.no_of_stars.times do |i| image_tag("/images/star.jpg") 終了

しかし、「未定義のメソッド `times' for #」と言い続けます

4

2 に答える 2

0

あなたproduct.no_of_starsがフロートを返しているのに対し、整数(またはおそらくFixnum)のみが応答できるためだと思いますtimes。分数を無視しても問題ない場合は、次のことを試してください。

product.no_of_stars.to_i.times do ...

または、常に整数が必要な場合は、整数列を使用するように DB を変更してください。

それ以外の場合は、星の評価に JavaScript を使用する方がうまくいく場合があります。簡単なグーグルで十分な結果が得られます。

于 2013-01-13T18:58:26.067 に答える
0

Ryan Bates は、この Railscast http://railscasts.com/episodes/101-refactoring-out-helper-objectでこれを行う方法の完全なウォークスルーを行います

于 2013-01-13T19:39:13.870 に答える