неопределенный метод `parent 'для nil: NilClass - PullRequest
5 голосов
/ 06 мая 2011

Я получаю эту странную ошибку при использовании Rails 3.0.2.

ActionView::Template::Error (undefined method `parent' for nil:NilClass):
app/controllers/channels_controller.rb:19:in `index'

Это контроллер, а строка 19 - это блок respond_with(@channels).

С чего начать поиск ошибок?

class ChannelsController < ApplicationController
  before_filter :set_default_client
  respond_to :html, :xml

  def index
    if params[:cache_set]
      @channels = Channel.active.find_all_by_id(params[:cache_set])
    else
      @channels = Channel.active.find_all_by_id(cookies[:channels].split(','))
    end

    respond_with(@channels)
  end
end

Это полная ошибка:

ActionView::Template::Error (undefined method `parent' for nil:NilClass):
  app/controllers/channels_controller.rb:19:in `index'

Rendered /Users/linus/.rvm/gems/ruby-1.8.7-p330/gems/actionpack-3.0.2/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1.3ms)
Rendered /Users/linus/.rvm/gems/ruby-1.8.7-p330/gems/actionpack-3.0.2/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (19.8ms)
Rendered /Users/linus/.rvm/gems/ruby-1.8.7-p330/gems/actionpack-3.0.2/lib/action_dispatch/middleware/templates/rescues/template_error.erb within rescues/layout (28.6ms)

Я использую Ruby 1.8.7 с Rails 3.0.2. Я также на всякий случай попробовал Rails 3.0.7 и 3.0.0.

Ответы [ 3 ]

9 голосов
/ 10 мая 2011

Используете ли вы в любом случае HAML?

Я тоже наткнулся на это, и мой коллега (который еще не находится в Stackoverflow) обнаружил, что это было связано с многострочными комментариями в шаблоне представления

-#
  = helper_method_1
  = helper_method_2
2 голосов
/ 11 мая 2011

Я решил проблему, изменив версию HAML с 3.1.x на 3.0.24.

Мой новый Gemfile выглядит следующим образом.

gem "rails", "3.0.2"
gem "haml", "3.0.24"
gem "compass", "0.10.6"
0 голосов
/ 26 мая 2011

Похоже, что HAML-edge исправил эту проблему. Я ожидаю, что следующий выпуск HAML после 3.1.1 решит эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...