Rails:Public_Activity Gem - 未初始化的常量

时间:2015-10-10 10:07:15

标签: ruby-on-rails public-activity

我正在尝试使用Rails 4制作应用程序。

我已经安装了public_activity gem。

我跟随Ryan Bates Railscast并采用了基于控制器的方法,以及更轻的Common选项(而不是跟踪模型)。

在我的activities_controller中,我有:

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

我尝试替换活动#index的开头行,以便“活动”是“活动”,但它只是将错误消息更改为:

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

这个错误是什么意思?我该如何解决?

谢谢

2 个答案:

答案 0 :(得分:0)

应为<% Activity.find_each do |activity| %>

  1. 型号名称始终为单数
  2. 您无法仅在模型
  3. 上致电each
  4. 我建议您使用find_each代替each,以防您有大量记录
  5. 如果您确实需要所有记录,则可以始终使用.all方法
  6. http://apidock.com/rails/ActiveRecord/Batches/ClassMethods/find_each

答案 1 :(得分:0)

好像你在循环中使用了Class。尝试在控制器中使用您的实例变量。

更改此

<% Activities.each do |activity| %>

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