Неопределенный метод 'status' для nil: nilclass - PullRequest
0 голосов
/ 06 сентября 2011

Хорошо, странная ошибка.Все работало нормально ... и теперь его нет.

В настоящее время у меня есть простая связь много-к-одному.

Маршрут настроен так:

resources :apps do
  resources :forms
end

Приложение:

has_many :forms

Форма:

belongs_to :app

Индексное действие Forms_controller:

def index
  @app = App.find(params[:app_id])
  @forms = @app.forms
  respond_to do |format|
    format.html # index.html.erb
    format.json { render json: @forms }
  end
end

Я извлек каждый бит кода / html из форм .htmlФайл макета .erb, поэтому он должен отображать пустую страницу.

Вместо этого я получаю эту ошибку:

неопределенный метод `status 'для nil: NilClass

status isnдаже не определено где-либо в моем приложении

помощь будет принята с благодарностью.

РЕДАКТИРОВАТЬ:

Вот что отображается в моем файле development.log

Started GET "/apps/4/forms" for 127.0.0.1 at 2011-09-05 23:14:16 -0700
  Processing by FormsController#index as HTML
  Parameters: {"app_id"=>"4"}
  [1m[36mApp Load (0.1ms)[0m  [1mSELECT "apps".* FROM "apps" WHERE "apps"."id" = ? LIMIT 1[0m  [["id", "4"]]
  [1m[35m (0.1ms)[0m  SELECT COUNT(*) FROM "forms" WHERE "forms"."app_id" = 4
0
  [1m[36mForm Load (0.1ms)[0m  [1mSELECT "forms".* FROM "forms" WHERE "forms"."app_id" = 4[0m
Rendered forms/index.html.erb within layouts/forms (1.2ms)
Completed 500 Internal Server Error in 37ms

NoMethodError (undefined method `status' for nil:NilClass):

Ответы [ 4 ]

5 голосов
/ 23 января 2012

У меня была похожая проблема - у меня был метод с именем 'response', что-то внутреннее для Rails вызывало 'status', и он аналогичным образом освобождался без трассировки стека.app 'и' forms ', вы можете столкнуться с чем-то похожим.

0 голосов
/ 06 сентября 2011

Сначала, пожалуйста, проверьте log / development.log или браузер. Это должно помочь вам, где ошибка произошла.

Далее, что такое значение params? Проверьте log / development.log. Это может выглядеть следующим образом:

...
Processing FormsController#index (for 127.0.1.1 at YYYY-MM-DD hh:mm:ss) [GET]
Parameters: {...}
...
0 голосов
/ 06 сентября 2011

При внутренних ошибках сервера ваше приложение не может быть запущено должным образом. Вы должны проверить журнал ошибок вашего сервера. Это может дать вам представление о том, в чем проблема. Если вы или член команды, в зависимости от обстоятельств, не внесли никаких изменений, которые нарушили работу приложения, вам следует проконсультироваться с хостом. Возможно, они внесли изменения в вашу среду, которые вызывают ошибку.

0 голосов
/ 06 сентября 2011

@ app не найден, вы можете выбрать формы в try

def index
  @app = App.find(params[:app_id])
  @forms = @app.try(:forms)
  respond_to do |format|
    format.html # index.html.erb
    format.json { render json: @forms }
  end
end

Если ваш шаблон обрабатывает @app, и важно иметь егоЛучше обработать исключение:

def index
  @app = App.find!(params[:app_id]) # raise an exception until find
  @forms = @app.forms
rescue
  flash[:error] = "App not found!"
end
...