Render_activity в раскрывающемся меню Bootstrap не работает должным образом
Так что я делаю это в выпадающем меню 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
Не знаю, где он получает эту информацию, но это то, что он делает.
Любые идеи о том, как я могу настроить это выпадающее меню для моих нужд?
Кроме того, я не знаю, почему выпадающий список проходит notification
в render_activity
, но драгоценный камень все еще хочет activity.trackable
, Я старался notification.trackable
но это не сработало.
2 ответа
Это мое выпадающее меню, основанное на 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
тег, который отображается в меню.
Вы правы, сэр. Согласно документам, используется только для отображения ссылок. Что делать, если вы измените render_activity
помощник, чтобы включить ссылку? Нечто подобное может работать для вас:
def render_activity(notification)
link_to notification, nil
end