【问题标题】:ruby on rails star rating轨道上的红宝石星级
【发布时间】:2013-01-14 03:39:13
【问题描述】:

嗨,所以我试图在网站上显示星级到目前为止,我已经以数字的形式获得了评级,但是我想乘以该数字并使用循环或类似的方式显示等量的星星,即如果评级为 4,则打印出 4 星图片,有什么想法吗?

到目前为止我的代码...

number_with_precision(product.no_of_stars, :precision => 1) // 这行打印出数字 ans 工作正常

我正在尝试做这样的事情......

product.no_of_stars.times 做 |i| image_tag("/images/star.jpg") 结束

但它一直说“未定义的方法 `times' for #”

【问题讨论】:

  • 当你在 HTML 中看到一个单独的 # 时,可能是因为 Ruby 会打印被 &lt;&gt; 包围的对象。由于 <0x25238235>

标签: ruby-on-rails


【解决方案1】:

我认为这是因为您的 product.no_of_stars 正在返回一个浮点数,而只有整数(或者可能是 Fixnums)可以响应 times;如果您对忽略任何分数感到满意,您可以尝试:

product.no_of_stars.to_i.times do ...

或者如果您总是想要一个整数,那么也许将您的数据库更改为使用整数列?

否则,使用 javascript 进行星级评定可能会更好;一个快速的谷歌会给你很多结果。

【讨论】:

  • thanks 效果很好,只是现在图像对于页面来说太大了,我需要调整它的大小,但是谢谢
  • @ArvidBoome,如果您认为此回复正确回答了您的问题,那么将其标记为正确既有帮助又有礼貌。
【解决方案2】:

Ryan Bates 在此 Railscast http://railscasts.com/episodes/101-refactoring-out-helper-object

中详细介绍了如何执行此操作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-30
    • 1970-01-01
    相关资源
    最近更新 更多