我正在尝试使用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
这个错误是什么意思?我该如何解决?
谢谢
答案 0 :(得分:0)
应为<% Activity.find_each do |activity| %>
each
find_each
代替each
,以防您有大量记录.all
方法http://apidock.com/rails/ActiveRecord/Batches/ClassMethods/find_each
答案 1 :(得分:0)
好像你在循环中使用了Class。尝试在控制器中使用您的实例变量。
更改此
<% Activities.each do |activity| %>
到
<% @activities.each do |activity| %>