Rails: Public_Activity Gem - неинициализированная константа

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

Я установил гем public_activity.

Я последовал за Ryan Bates Railscast и выбрал подход, основанный на контроллере, а также более легкий вариант Common (в отличие от отслеживания модели).

В моей деятельности - у меня есть:

class ActivitiesController < ApplicationController
  def index
      @activities = PublicActivity::Activity.order("created_at desc")
  end
end

В моем project.rb у меня есть:

include PublicActivity::Common

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

@project.create_activity :create, owner: current_user

В моей активности - индекс, у меня есть:

<% Activities.each do |activity| %>
        <div class="col-md-4">
          <div class="indexdisplay">

            <span class="indexheading"> 
              <%= link_to activity.owner.name, activity.owner if activity.owner %>
            </span>
            <span class="indexsubtext">                 
              <%= render_activity activity %>
            </span>

В моей публичной деятельности (просмотр папки)/project/_create.html.erb я имею:

<% if activity.trackable %>
  <%= link_to activity.trackable.name, activity.trackable %>
<% else %>
  which has since been removed
<% end %>

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

NameError at /activities
uninitialized constant ActionView::CompiledTemplates::Activities

Я попытался заменить начальную строку индекса Activity # так, чтобы Activity был Activity, но он просто изменил сообщение об ошибке на:

NameError at /activities
uninitialized constant ActionView::CompiledTemplates::Activities

Что означает эта ошибка? Как мне это исправить?

Спасибо

2 ответа

Решение

Кажется, вы используете класс в вашем цикле. Попробуйте использовать переменную вашего экземпляра в вашем контроллере.

Изменить это

<% Activities.each do |activity| %>

в

<% @activities.each do |activity| %>

Так должно быть <% Activity.find_each do |activity| %>

  1. Название модели всегда единственное число
  2. Вы не можете позвонить each только на модели
  3. Я бы порекомендовал вам использовать find_each вместо each если у вас много записей
  4. если вы хотите, чтобы все записи вы всегда можете использовать .all метод

http://apidock.com/rails/ActiveRecord/Batches/ClassMethods/find_each

Другие вопросы по тегам