У меня есть некоторое дерево категорий, построенное с использованием драгоценного камня Ancestry для Rails 3. Я могу использовать все методы Ancestry между консолью и другими контроллерами. Но теперь я столкнулся с проблемой использования таких методов, как root? а есть_рут? Чтобы определить, является ли выбранный кот корневой категорией.
Мой код внутри контроллера приложений
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
......
Моя ошибка выглядит так:
undefined method `root?' for nil:NilClass
p params
, чтобы увидеть, имеет ли ключ:category
какое-либо значение или нет. - person Arup Rakshit   schedule 29.04.2014Category.find_by_name(params[:category])
ничего не дало. - person lurker   schedule 29.04.2014.root?
нет ничего плохого; проблема в том, что@origin_cat
равно нулю, потому что поиск не удался. Вы должны проверить значениеparams[:category]
- person   schedule 29.04.2014