Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.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
Javascript Rails:跟踪RubyonRails应用程序中的每个链接_Javascript_Ruby On Rails_Ruby_Rails Activerecord - Fatal编程技术网

Javascript Rails:跟踪RubyonRails应用程序中的每个链接

Javascript Rails:跟踪RubyonRails应用程序中的每个链接,javascript,ruby-on-rails,ruby,rails-activerecord,Javascript,Ruby On Rails,Ruby,Rails Activerecord,我目前的要求是,每当单击应用程序中的任何对象时,都要在Postgres DB中创建一条记录。这是一个有数百个链接和页面的大型项目。如果用户单击一个锚、一个可单击的div或一个按钮,我想在数据库中创建一个记录 电话号码如下: AppEvent.record_event(event_type: 'example', url: request.fullpath, user: current_user.name) 我现在使用它来跟踪页面转换,但是如何使用该功能跟踪对div或锚点的单击?有可能在某种程度

我目前的要求是,每当单击应用程序中的任何对象时,都要在Postgres DB中创建一条记录。这是一个有数百个链接和页面的大型项目。如果用户单击一个锚、一个可单击的div或一个按钮,我想在数据库中创建一个记录

电话号码如下:

AppEvent.record_event(event_type: 'example', url: request.fullpath, user: current_user.name)
我现在使用它来跟踪页面转换,但是如何使用该功能跟踪对div或锚点的单击?有可能在某种程度上使用JS吗?

看,如果你不想使用这个gem,你可以使用Rails分析,然后你创建这个简单的定义一个方法,首先我认为你的跟踪表是
app\u events
然后你的模型是
AppEvent
,然后你的模型看起来像这个关系

#=> user.rb
class User < ApplicationRecord

  .....
  has_many :app_events
  ....
end

#=> app_event.rb
class AppEvent < ApplicationRecord

  .....
  belongs_to :users
  ....
end
你的链接是这样的

root_path(event_type: 'home', url: request.fullpath)
about_path(event_type: 'about', url: request.fullpath)
news_path(event_type: 'news', url: request.fullpath)
...

看看这是如何在客户端完成的。您可以在rails应用程序上创建一个虚拟“页面”(API端点),用于记录request.query或body中的信息。为click event添加事件侦听器,以将有关单击的信息发布到此API端点。控制器将读取主体并创建记录。这正是我所需要的。谢谢
root_path(event_type: 'home', url: request.fullpath)
about_path(event_type: 'about', url: request.fullpath)
news_path(event_type: 'news', url: request.fullpath)
...