将整数转换为星级

时间:2016-06-26 03:24:26

标签: ruby-on-rails haml

首先,这是我的文件结构

application_helper.rb

module ApplicationHelper
  def show_stars(review)
    image_tag review.rating
  end
end

Controller:customers_controller.rb

class CustomersController < ApplicationController
  before_action :require_admin
  # reviews
  def reviews
    @reviews = Review.all
  end
end

view:reviews.haml

%table.table.table-striped
  %thead
    %tr
      %th{ :style => "width:8%" } Ratings
      %tbody
        - @reviews.each do |review|
          %tr
            %td{ :style => "text-align:center" }= review.rating.show_stars

我在架构中将rating设置为整数,我想要做的是通过应用程序助手将整数转换为星形图像。但是,当我尝试使用我的方法时,我最终得到了

undefined method `show_stars' for 4:Fixnum // 4 is my rating value

我在这里缺少什么?我刚刚开始研究红宝石,所以我很感激。

1 个答案:

答案 0 :(得分:2)

您的方法接受评分(签名show_stars(review)),因此请正确使用:将review.rating.show_stars更改为show_stars(review)