繁体   English   中英

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

[英]Rails: Public_Activity Gem - uninitialised constant

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

我已经安装了public_activity gem。

我遵循Ryan Bates Railscast的观点,采用了基于控制器的方法,并且采用了更轻便的Common选项(与跟踪模型相对)。

在我的activity_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

我尝试替换activity#index的开头行,以使Activity为Activity,但它只是将错误消息更改为:

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

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

谢谢

它应该是<% Activity.find_each do |activity| %> <% Activity.find_each do |activity| %>

  1. 型号名称始终为单数
  2. 您不能仅在Model上调用each
  3. 如果您有很多记录,我建议您使用find_each而不是each
  4. 如果您确实想要所有记录,则可以始终使用.all方法

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

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

改变这个

<% Activities.each do |activity| %>

进入

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM