我正在使用PublicActivity ruby gem,我收到此错误消息
这发生在/views/activities/_index.html.erb
<li>
<% if activity.trackable_type == "Micropost" %>
<%= link_to activity.owner.name, activity.owner if activity.owner %> posted
<% else %>
<%= link_to activity.owner.name, activity.owner if activity.owner %> made a comment on <%= link_to activity.recipient_id %>
<% end %>
</li>
但是,当我包含此行时,它可以正常工作
<li>
<% @activities.each do |activity| %>
<% if activity.trackable_type == "Micropost" %>
<%= link_to activity.owner.name, activity.owner if activity.owner %> posted
<% else %>
<%= link_to activity.owner.name, activity.owner if activity.owner %> made a comment on <%= link_to activity.recipient_id %>
<% end %>
<% end %>
</li>
我在上面添加了<% @activities.each do |activity| %>
。它没有错误,但问题是,在视图中,活动在同一列表中重复。
这是activities/_index.html.erb
被称为
我的views\shared\_feed.html.erb
<%= render partial: 'activities/index', collection: @activities %>
我的活动控制器
class ActivitiesController < ApplicationController
def index
@activities = PublicActivity::Activity.order("created_at desc")
@activity = PublicActivity::Activity.order("created_at desc")
end
end
答案 0 :(得分:0)
使用render:partial与集合创建一个变量,其中包含部分可用的名称。所以一个选择是;在您的部分,更改索引的活动,如:
<li>
<% if index.trackable_type == "Micropost" %>
更好的是,将您的部分重命名为_activity.html.erb,并且不要更改内部的任何内容。这将更加明确。