2016-09-20 4 views
1

Отображение /home/bdme551/bdme21/app/views/users/index.html.erb где строка # 4 поднятый:ArgumentError пользователей # индекс

Переменная @users выглядит пустым. Вы забыли передать объект коллекции для will_paginate? Извлеченные источник (около линии № 4):

<h1>All users</h1> 

<%= will_paginate %> 

<ul class="users"> 
    <%= render @users %> 

Я знаю, что я что-то отсутствует. Но я не мог понять. Может кто-то мне помочь, пожалуйста? Спасибо.

Users_controller

def index 
    @users = User.all.paginate(:page => params[:page], :per_page => 5) 
end 

консоли журнал

ActionView::Template::Error (The @users variable appears to be empty. Did you forget to pass the collection object for will_paginate?): 
    1: <% provide(:title, 'All users') %> 
    2: <h1>All users</h1> 
    3: 
    4: <%= will_paginate %> 
    5: 
    6: <ul class="users"> 
    7: <% @users.each do |user| %> 

app/views/users/index.html.erb:4:in `_app_views_users_index_html_erb__4020588401683243365_70237529196060' 
    Rendering /home/bdme551/.rvm/gems/ruby-2.3.1/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/template_error.html.erb within rescues/layout 
    Rendering /home/bdme551/.rvm/gems/ruby-2.3.1/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_source.html.erb 
    Rendered /home/bdme551/.rvm/gems/ruby-2.3.1/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_source.html.erb (6.7ms) 
    Rendering /home/bdme551/.rvm/gems/ruby-2.3.1/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb 
    Rendered /home/bdme551/.rvm/gems/ruby-2.3.1/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (3.0ms) 
    Rendering /home/bdme551/.rvm/gems/ruby-2.3.1/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb 
    Rendered /home/bdme551/.rvm/gems/ruby-2.3.1/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (1.9ms) 
    Rendered /home/bdme551/.rvm/gems/ruby-2.3.1/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/template_error.html.erb within rescues/layout (32.0ms) 
DEPRECATION WARNING: #original_exception is deprecated. Use #cause instead. (called from process_request at /usr/lib/ruby/vendor_ruby/phusion_passenger/rack/thread_handler_extension.rb:97) 
    Rendering /home/bdme551/.rvm/gems/ruby-2.3.1/gems/web-console-3.1.1/lib/web_console/templates/index.html.erb 
    Rendered /home/bdme551/.rvm/gems/ruby-2.3.1/gems/web-console-3.1.1/lib/web_console/templates/_markup.html.erb (0.9ms) 
    Rendering /home/bdme551/.rvm/gems/ruby-2.3.1/gems/web-console-3.1.1/lib/web_console/templates/console.js.erb within layouts/javascript 
    Rendering /home/bdme551/.rvm/gems/ruby-2.3.1/gems/web-console-3.1.1/lib/web_console/templates/_inner_console_markup.html.erb within layouts/inlined_string 
    Rendered /home/bdme551/.rvm/gems/ruby-2.3.1/gems/web-console-3.1.1/lib/web_console/templates/_inner_console_markup.html.erb within layouts/inlined_string (0.7ms) 
    Rendering /home/bdme551/.rvm/gems/ruby-2.3.1/gems/web-console-3.1.1/lib/web_console/templates/_prompt_box_markup.html.erb within layouts/inlined_string 
    Rendered /home/bdme551/.rvm/gems/ruby-2.3.1/gems/web-console-3.1.1/lib/web_console/templates/_prompt_box_markup.html.erb within layouts/inlined_string (0.4ms) 
    Rendering /home/bdme551/.rvm/gems/ruby-2.3.1/gems/web-console-3.1.1/lib/web_console/templates/style.css.erb within layouts/inlined_string 
    Rendered /home/bdme551/.rvm/gems/ruby-2.3.1/gems/web-console-3.1.1/lib/web_console/templates/style.css.erb within layouts/inlined_string (0.8ms) 
    Rendered /home/bdme551/.rvm/gems/ruby-2.3.1/gems/web-console-3.1.1/lib/web_console/templates/console.js.erb within layouts/javascript (22.3ms) 
    Rendering /home/bdme551/.rvm/gems/ruby-2.3.1/gems/web-console-3.1.1/lib/web_console/templates/main.js.erb within layouts/javascript 
    Rendered /home/bdme551/.rvm/gems/ruby-2.3.1/gems/web-console-3.1.1/lib/web_console/templates/main.js.erb within layouts/javascript (0.5ms) 
    Rendered /home/bdme551/.rvm/gems/ruby-2.3.1/gems/web-console-3.1.1/lib/web_console/templates/index.html.erb (39.0ms) 
+1

will_paginate @users –

+0

Что происходит с действием 'index' контроллера' user'? –

+0

@ Deepak Я попробовал. Это не работает. –

ответ

1

Что произойдет, если вы просто удалите разбивку на страницы?

Предположим, вы потеряете "will_paginate" в строке 4 вашего зрения

и вы измените свое действие контроллера из

@users = User.paginate (страница: Титулы [: страница], per_page: 5)

до всего

@users = User.all

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

+0

Спасибо. Вот что я делаю сейчас. Теперь работает. –

+0

Теперь попробуйте изменить это на @users = User.paginate (страница: 1, per_page: 5) и посмотрите, что там происходит. Это скажет нам точную точку, в которой все ломается. –

+0

Когда я это делаю, он повторяется 5 раз с 5 пользователями. Несколько минут назад я использовал фейерверк, чтобы создать больше пользователей. –

0

пытаются получить коллекцию пользователей в указательным действия как этот

@users = User.all.paginate(:page => params[:page], :per_page => 2) 

и в вашем index.html.erb это сделать

<%= will_paginate @users %> 
+0

К сожалению, он не работает. –

+0

, пожалуйста, проверьте обновленный ответ. – Navin

+0

Я включил консольный журнал в соответствии с запросом. После исправления user_controller, я все равно получаю тот же ArguementError. –

0

Попробуйте добавить per_page

def index 
    @users = User.paginate(page: params[:page], per_page: 5) 
end 

и передать переменную @users в will_paginate

<%= will_paginate @users %> 
+0

Я пошел вперед и включил изменения, которые вы мне просили. Затем я обновил журнал консоли и другие коды в моем вопросе выше. Пожалуйста, просмотрите его, когда это возможно. Спасибо. –

0

Попробуйте этот код для index.html.erb:

<% provide(:title, 'All users') %> 
<h1>All users</h1> 

<%= will_paginate %> 

<ul class="users"> 
    <% @users.each do |user| %> 
     <%= render user %> 
    <% end %> 
</ul> 

<%= will_paginate %> 

и что-то подобное для app/views/users/_user.html.erb

<li> 
    <%= link_to user.name, user %> 
</li> 
+0

Я добавил ваш код, как указано выше. Я все еще получаю ArgumentError в индексе пользователей #. –

+0

Я обновил журнал консоли и другие коды в моем вопросе выше. Пожалуйста, просмотрите его, когда это возможно. Спасибо. –

+0

Ну, вы также можете попытаться написать ** @ users = User.paginate (страница: params [: page]) ** вместо ** @ users = User.all.paginate (страница: params [: page]) * * в вашем «указателе» описания контроллера пользователей – Abuzhan

 Смежные вопросы

  • Нет связанных вопросов^_^