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| %>
- Название модели всегда единственное число
- Вы не можете позвонить
each
только на модели - Я бы порекомендовал вам использовать
find_each
вместоeach
если у вас много записей - если вы хотите, чтобы все записи вы всегда можете использовать
.all
метод
http://apidock.com/rails/ActiveRecord/Batches/ClassMethods/find_each