От новичка до гуру: Курсы программирования на CyberDuff

Ошибка Rails 4: тело области должно быть вызываемым

Я пытаюсь сделать приложение в Rails 4.

У меня промышленная модель.

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

У меня есть industry.rb с:

  scope :alphabetically, order("sector ASC")

У меня есть контроллер индекса с:

  def index
    @industries = Industry.alphabetically
  end

В моем индексном представлении у меня есть:

<% @industries.each do |industry| %>            
          <tr>
            <td><%= image_tag industry.icon.tiny.url %></td>
            <td><%= industry.sector %></td> 
            <td><%= link_to 'Show', industry %></td>
            <td><%= link_to 'Edit', edit_industry_path(industry) %></td>
            <td><%= link_to 'Destroy', industry, method: :delete, data: { confirm: 'Are you sure?' } %></td>
          </tr>
         <% end %> 

Когда я пытаюсь это сделать, я получаю эту ошибку:

ArgumentError in IndustriesController#index
The scope body needs to be callable.

Как сделать область «вызываемой»?


Ответы:


1

Согласно сообщению об ошибке, тело области должно быть заключено во что-то вызываемое, например Proc. или Лямбда. Как это:

scope :alphabetically, -> {
  order("sector ASC")
}

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

Итак, если вы измените область действия, как показано выше, это должно сработать и решить вашу проблему.

03.01.2016
  • Спасибо большое. Трудно извлечь эту информацию из сообщений об ошибках, когда они написаны для людей, которые знают намного больше о том, что ожидается. 03.01.2016
  • Новые материалы

    Представляем Narwhal Technologies (Nrwl)
    6 декабря 2016 г. Маунтин-Вью, Калифорния С тех пор, как Виктор Савкин и я (Джефф Кросс) присоединились к команде Angular в Google на заре Angular 1, Angular продемонстрировал феноменальный..

    Путь AWS  — «Изучение машинного обучения — 10 начинающих ИИ и машинного обучения на AWS».
    Универсальный ресурсный центр для изучения искусственного интеллекта и машинного обучения. НОЛЬ или ГЕРОЙ, начните свое путешествие здесь. Получите решения и пройдите обучение у экспертов AWS...

    5 простых концепций Python, ставших сложными
    #заранее извините 1) Переменные x = 4 y = 5 Переменная в Python — это символическое представление объекта. После присвоения некоторого объекта переменной Python мы приобретаем..

    «Освоение вероятности: изучение совместной, предельной, условной вероятности и теоремы Байеса —…
    Виды вероятности: Совместная вероятность Предельная вероятность Условная вероятность Диаграмма Венна в вероятностях: В “Set Theory” мы создаем диаграмму Венна...

    Основы Spring: Bean-компоненты, контейнер и внедрение зависимостей
    Как лего может помочь нашему пониманию Когда мы начинаем использовать Spring, нам бросают много терминов, и может быть трудно понять, что они все означают. Итак, мы разберем основы и будем..

    Отслеживание состояния с течением времени с дифференцированием снимков
    Время от времени что-то происходит и революционизирует часть моего рабочего процесса разработки. Что-то более забавное вместо типичного утомительного и утомительного процесса разработки. В..

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