0

所以我在我的主布局的一部分的 Bootstrap 下拉菜单中执行此操作:

      <% @unread_act.each do |notification| %>
        <li>
    <%= render_activity notification %>
        </li>
      <% end %>

@unread_act在我的声明中application_controller.rb是这样的:

  @unread_act = Notification.where(recipient_id: current_user).includes(:trackable => [:user, :node]).order("created_at desc")      

然后在我的views/public_activity/comment/_create.html.erb,我有这个:

添加了一条已被删除的评论

问题是在下拉菜单中,它不显示此信息。它实际上只是显示相当于:

activity.trackable.node.name

不知道它从哪里获得这些信息,但这就是它正在做的事情。

关于如何根据需要自定义此下拉菜单的任何想法?

另外顺便说一句,我不知道为什么下拉菜单会传递notificationrender_activity,但是 gem 仍然想要activity.trackable. 我试过notification.trackable了,但没有用。

4

2 回答 2

0

这是我的下拉菜单,基于 Bootstrap:

<div class="notifications bootstrap-styles">
    <div class="dropdown">
    <a data-toggle="dropdown" class="dropdown-toggle" href="#"><%= @unread_act.size %></a>
        <ul class="dropdown-menu dropdown-menu-right" role="menu" aria-labelledby="dLabel">
          <% @unread_act.each do |notification| %>
            <li>
                            <%= render_activity notification %>
                        </li>
          <% end %>

         <li><%= link_to "Mark all as read", mark_all_read_activities_path, method: :put %></li>
      </ul>
    </div>
</div>

发生的事情是这个下拉菜单只会显示链接。

所以只有link_to标签中的元素才会显示在菜单中。

于 2014-11-11T17:08:06.867 回答
0

你是对的,先生。根据文档,仅用于显示链接。如果您更改render_activity助手以包含链接怎么办?这样的事情可能对你有用:

def render_activity(notification)
  link_to notification, nil
end
于 2014-11-15T03:25:17.840 回答