неопределенный метод `each 'для nil: NilClass (отображение чтения в Crud)

0

Я пытаюсь отобразить содержимое моей базы данных с помощью Ruby on Rails и когда я написал этот код. Он возвращает ошибку "undefined method 'each' for nil:nilclass". Теперь все, с чем я столкнулся с подобными проблемами, говорит о том, что проблема заключается в контроллере. Я проверил свой контроллер и, честно говоря, очень простой на данный момент и почти идентичный (в том числе Case Sensitive) один, который я использовал в учебнике (кроме имен объектов). Может быть, я просто пропустил что-то действительно очевидное.

ПОСМОТРЕТЬ

<div class="item list">
 <h2>Subjects</h2>

<%= link_to("Add New item", {:action => 'new'}, :class => 'action new') %>

 <table class="listing" summary="item list">
    <tr class="header">
        <th>&nbsp;</th>
        <th>Item</th>
        <th>Visible</th>
        <th>Actions</th>
    </tr>
    <% @items.each do |item| %> 
       <tr>
        <td><%= item.position %></td>
        <td><%= item.name %></td>
        <td class="center"><%= item.visible ? 'Yes' : 'No' %></td>
        <td class="actions">
          <%= link_to ("show", {:action => 'show', :id => item.id}, :class => 'action show') %> 
          <%= link_to ("edit", {:action => 'edit', :id => item.id}, :class => 'action edit') %> 
          <%= link_to ("delete", {:action => 'delete', :id => item.id}, :class => 'action delete') %>
        </td>
    </tr>

    <% end %> 
 </table>
</div>

КОНТРОЛЛЕР

class ItemsController < ApplicationController

def list
 @items = Item.order("items.position ASC")
end 
end

ДРУГИЕ

Processing by ItemsController#stocklist as HTML
Rendered items/stocklist.html.erb within layouts/application (7.0ms)
Completed 500 internal server error in 17ms
  • 1
    покажи мне страницу рендера, покажи мне журнал разработки, особенно сообщение "Processing by"
  • 0
    Какой у Вас вопрос?
Показать ещё 8 комментариев
Теги:

2 ответа

0
Лучший ответ

Хорошо, так что для любого в будущем Савва поставил меня на этот вопрос.

В контроллере это был список вызовов. Теперь... он должен был назвать "запас",

class ItemsController < ApplicationController

def stocklist
 @items = Item.order("items.position ASC")
end 
end

Это было все, что было не так. (Маленькие вещи в жизни имеют значение...)

0

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

Model.all(:order => 'DATE(updated_at), price')

Ещё вопросы

Сообщество Overcoder
Наверх
Меню