레일 3에 Ancestry gem을 사용하여 카테고리 트리를 구성했습니다. 콘솔과 다른 컨트롤러간에 모든 Ancestry 메소드를 사용할 수 있습니다. 하지만 이제 루트와 같은 메서드를 사용하는 데 문제가 있습니까? 및 is_root? 선택한 고양이가 루트 카테고리인지 결정합니다.정의되지 않은 메소드`root? ' nilClass
응용 프로그램 컨트롤러 내부에 내 코드
는private
def set_categories
def set_ids
case action_name
when "index"
@origin_cat = Category.find_by_name(params[:category])
if @origin_cat.root?
@descendant_ids = @origin_cat.descendant_ids
@descendant_prods = Product.where(:category_id => @descendant_ids ).paginate(:per_page=>10, :page=> params[:page])
else
end
......
내 erorr는 다음과 같습니다
undefined method `root?' for nil:NilClass
''category' 키가 먼저 값을 가지는지 아닌지를''params' 할 수 있습니다. –
'Category.find_by_name (params [: category])'결과가 없습니다. – lurker
'.root? '에 대한 호출에 아무런 문제가 없습니다; find가 실패했기 때문에 문제는'@ origin_cat'이 nil입니다. 당신은'params [: category]'의 값을 확인해야합니다. –