我正在构建用户通知列表。当前用户点击包含整个通知内容的<li>
标记时,应将其重定向到上述帖子或用户等。
以下是我现在正在尝试的内容,似乎无法让它发挥作用。
<%= link_to activity.activable do %>
<span><%= link_to(image_tag(activity.actor.avatar.url(:thumb)), user_path(activity.actor.username)) %></span>
<span class="us-rt-sg">
<%= link_to activity.actor.name, user_path(activity.actor.username), class: "us-rt-usnm" %>
<%= activity.action %> on
<%= link_to personalize_owner(activity, recepient), user_path(activity.activable.user.username) %>
<%= link_to 'Post', activity.activable %>
<br>
<span class="us-rt-sg-date"><%= time_ago_in_words(activity.created_at) %></span>
</span>
<% end %>
一旦我开始工作,我会删除该行<%= link_to 'Post', activity.activable %>
,因为点击后整个<li>
都会成为一个链接。
我也在我的活动主视图页面上尝试了这个。
<li class="activity">
<%= link_to activity.activable do %>
<%= render "activities/#{activity.action}", activity: activity, recepient: recepient %>
<% end %>
</li>
有人能告诉我我需要做什么吗?因为到目前为止,我所做的每一件事都没有奏效。
答案 0 :(得分:1)
包裹link_to
和内部链接会让你头疼。你必须决定元素中最重要的东西。
从表面上看,如果您有可点击的通知并链接到指定的活动,则应删除内部链接,然后将整个内容链接到活动。一旦他们到达活动,那么您可以包含指向作者,所有者等的链接,而不必担心包装链接。
答案 1 :(得分:0)
看起来您正在尝试嵌套锚链接,这违反了W3C标准。您将无法在链接中使用link_to标记来阻止。但是,您可以通过分配ID并使用数据属性来存储目标来激活on Click事件处理程序
<li class="clickable" data-destination="<%=activity.activable%>"
<%= link_to activity.actor.name, user_path(activity.actor.username), class: "us-rt-usnm" %>
xxxxxx
</li>
#JQuery example
$('.clickable").on('click', function () {window.location.href = $(this).attr('data-destination') });