Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 是否仍要在1 ahref中创建指向两条路径的链接?_Ruby On Rails_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 是否仍要在1 ahref中创建指向两条路径的链接?

Ruby on rails 是否仍要在1 ahref中创建指向两条路径的链接?,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我知道这似乎是一个奇怪的问题,但基本上我想发生的是,无论何时显示和单击链接,它都应该转到所需的页面,并将通知标记为未读 基本上,我想在一个链接中完成这两件事: <%= link_to "#{activity.trackable.user.first_name} added a comment to '#{activity.trackable.node.name}'", activity.trackable.node, id: "unread-notification" %> <

我知道这似乎是一个奇怪的问题,但基本上我想发生的是,无论何时显示和单击链接,它都应该转到所需的页面,并将通知标记为未读

基本上,我想在一个链接中完成这两件事:

<%= link_to "#{activity.trackable.user.first_name} added a comment to '#{activity.trackable.node.name}'", activity.trackable.node, id: "unread-notification" %>
<%= link_to "Mark as Read", mark_as_read_activity_path(activity), method: :put, id: "mark-as-read" %>

类似于此,您可以在jquery文档中查找更多ajax选项,毫无疑问,对于TurboLink,您需要更改一些内容

<%= link_to "#{activity.trackable.user.first_name} added a comment to '#{activity.trackable.node.name}'", activity.trackable.node, data: { read_url: "#{mark_as_read_activity_path(activity)}" }, id: "unread-notification" %>

您可以使用javascript在单击链接时发出请求,以
将\u标记为\u read\u activity\u path
。或者,如果节点控制器中的节点未标记为已读,则在访问该节点时将其标记为已单击already@japed你能给我举个例子吗?我正在使用
Turbolinks
jQuery.Turbolinks()
和常规javascript。不用担心,很抱歉没有提供TL友好的代码,但我自己不使用Turbolinks。很高兴你成功了:)
$(document).on("ready page:load", function(){
      $('#unread-notification').click(function(){
        var url = $(this).data('read-url');
        $.ajax({
          type: "PUT",
          url: url
        });
      });       
});