我觉得我在犯语法错误。
我试图在模型中定义一个实例方法,然后用实例接收器调用它。但输出是 nilClass。
我究竟做错了什么?
模型
class Park < ActiveRecord::Base
has_many :reviews
def percentages
@percentages = Array.new(5, 0)
if reviews.any?
5.downto(1).each_with_index do |val, index|
@percentages[index] = (reviews.with_stars(val).size) * 100 / (reviews_count)
end
@percentages
end
end
end
控制器
class ParksController < ApplicationController
def show
@park = Park.find(params[:id])
@percentages = @park.percentages
end
end
看法
= @percentages[0]
输出
undefined method `[]' for nil:NilClass