我有代码:
= link_to image_tag(image_info), 'web-site', :target=>'blank'
非常适合在新标签页中打开网站但
图片是我正在托管的广告,我还要记录图片被点击的事实以及时间和其他细节。
有没有办法将link_to,target'_blank'与对控制器操作的调用结合起来?
答案 0 :(得分:0)
您可以使用Javascript实现这一目标,并记录定义动作所需的点击时间,这将节省时间和其他细节。
$rootScope.myapp.queue = {'A1':{'Name':'John','ID':'A1'},'A2':{'Name':'Anna','ID':'A2'}};
JS:
= link_to image_tag(image_info), 'web-site', class: 'save-time'
希望有所帮助!
答案 1 :(得分:0)
一种非Javascript的方法是创建一个控制器动作:
然后设置你的链接,以便它直接调用你的控制器动作。
作为一个非常简单的例子,可以从更复杂的方面受益:
# config/routes.rb
# [...]
get 'tracking/:url_id', to: 'tracking#redirection', as: 'track_redirection'
# app/controllers/tracking_controller.rb
class TrackingController
def redirection
url = {
1 => 'google.com',
2 => 'bbc.com'
}[params[:url_id]]
TrackingClass.new(url, current_user).track
redirect_to url
end
end
= link_to image_tag(image_info), track_redirection_path(1), target: 'blank'
这将创建一个指向/tracking/1
的内部链接,然后您的控制器将重定向到正确的网址。
答案 2 :(得分:0)
您可以链接到控制器方法路径
link_to "controller/method", target: 'blank', method: :post do
image_tag image_path("whatsapp-icon.svg")
end
# config/routes.rb
resources :controller do
post "method" => "controller#method"
end