Javascript 同时打开链接的Rails远程链接更新记录

Javascript 同时打开链接的Rails远程链接更新记录,javascript,ruby-on-rails,ajax,onclick,Javascript,Ruby On Rails,Ajax,Onclick,我的应用程序包含一个引用模型,它属于客户端模型。每个引文都只是客户在某个第三方目录上的本地业务列表,例如yellowpages.com 因此,在我的客户端显示视图中,我拥有属于该客户端的所有列表,您可以单击“查看列表”链接打开该列表的url,如下所示: <%= @citations.each do |c| %> <%= link_to "View Listing", c.listing_url, target: '_blank' %> <% end %>

我的应用程序包含一个引用模型,它属于客户端模型。每个引文都只是客户在某个第三方目录上的本地业务列表,例如yellowpages.com

因此,在我的客户端显示视图中,我拥有属于该客户端的所有列表,您可以单击“查看列表”链接打开该列表的url,如下所示:

<%= @citations.each do |c| %>
  <%= link_to "View Listing", c.listing_url, target: '_blank' %>
<% end %>


单击链接时,我想使用ajax调用控制器中的一个方法,在打开链接的顶部更新该记录的“updated_at”列。我可以使用内置远程方法来执行此操作吗?或者我必须编写自己的javascript事件监听器吗?

为了实现您要求的确切行为,我建议编写自己的javascript事件监听器。但是,这里有一种几乎具有相同效果的替代方法。它使用ajax链接点击控制器,但新的浏览器选项卡在Rails应用程序响应后才会打开

将链接更改为以下内容:

<%= @citations.each do |c| %>
  <%= link_to "View Listing", {:controller => :citations, :action => :my_action, :citation_id => c.id}, :remote => :true %>
<% end %>

这一切都是有道理的,只是我遇到了一个路由问题。下面是我的引用嵌套路由现在的样子
resources:clients do resources:引文do collection do post:import end
我应该如何为新操作添加路由?有多种方法可以定义应用程序路由,我认为资源路由对新手来说有点混乱Rails开发人员。对于我给出的示例答案,定义单个路由的一种简单方法是将其添加到您的
config/routes.rb
文件:
get'tication_listing',添加到:'tications#my_action'
class CitationsController < ApplicationController
  def my_action
    @citation = Citation.find( params.require(:citation_id) )
    @citation.touch # updates the updated_at column
  end
end
// same effect as a link with target = _blank
window.open("<%= j @citation.listing_url %>");