Rails - экземпляр переменной nil объекта в поле зрения - PullRequest
0 голосов
/ 01 декабря 2011

Я работаю с некоторыми базовыми платформами Rails и знаю, что переменные экземпляра часто используются в представлении для отображения данных, передаваемых из контроллера.

В моем приложении есть несколько примеров пользователей в базе данных (которые я могу найти в консоли, используя results = Result.all)

В моем файле results_controller действие index также имеет этот код (автоматически генерируется rails)

@results = Result.all

поэтому я хотел выяснить и показать, сколько пользователей в верхней части NEW.html.erb (не в index.html.erb), поэтому я поставил это

<%= @results.count %>

в views / results / NEW.html.erb, но он дал мне сообщение об ошибке об объекте nil. Вы можете объяснить?

You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.count

Однако, если я поставлю это

<%= @results.count %>

в INDEX.html.erb, показывает номер ...

ПРИМЕЧАНИЕ: целью этого было следующее: на new.html.erb у меня была форма для ввода пользователями простой информации. Я планировал использовать <% = @ results.count%>, чтобы сообщить пользователям на этой странице, сколько людей уже отправили информацию ...

Если вы не можете ответить на этот вопрос stackoverflow, можете ли вы объяснить другой способ достижения того же эффекта?

1 Ответ

1 голос
/ 01 декабря 2011

Это не указано в вопросе, поэтому, пожалуйста, прости меня, если ты уже сделал это. Но переменная экземпляра должна быть объявлена ​​в методе, который относится к действию, к которому вы обращаетесь в данный момент. В данном случае это новое действие. Таким образом, вы должны иметь код, который выглядит примерно так:

def new
  @result = Result.new
  @results = Result.all
end

Вы также можете заменить @results метод экземпляра на:

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