0
구문 오류가 발생했습니다.레일스 인스턴스 메소드가 관계에서 작동하지 않습니다.
모델에서 인스턴스 메서드를 정의하려고하고 있는데 인스턴스 수신기로 호출됩니다. 출력은 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
'@ park'에 대한 리뷰가 있습니까? 그렇지 않으면 '박 # 백분율'에서 '없음'이 반환됩니다. –
조건이 정의 된 배열을 무시한다고 말하고 있습니까? – ahnbizcad
'파크 # 백분율'? 나는 인스턴스 메소드를 정의하고 있다고 생각했습니다. 나는 혼란 스럽다 =] – ahnbizcad