用户点击下载链接时的跟踪

时间:2015-02-26 20:47:11

标签: javascript ruby-on-rails ruby

我有一个应用程序,允许用户下载应用程序的最新版本。我需要在用户点击链接时进行记录。我创建了一个跟踪这些数据的UserVersions模型。但我不确定如何通过javascript或某些rails实用程序拨打电话来创建新记录。我知道如何使用jquery来做到这一点。但我不确定如何获取每个链接的version_id。

配置/ routes.rb中

post 'user_versions/create/:user_id/:version_id', to: 'user_versions/#create'

应用程序/控制器/ user_versions_controller.rb

class UserVersionsController < ApplicationController

  def create
    user = params[:user_id]
    version = params[:version_id]
    UserVersion.find_or_create_by(user: user, version: version)
  end

end

应用程序/视图/版本/ _full.html.erb

...

      <li class="download cols-lg-4 pull-right">
        <% if (version.app[:app_type] == 'ios') %>
          <%= button_to 'Download', "itms-services://?action=download-manifest&url=#{CGI::escape version.plist_url}", class:"btn-primary btn-small pull-right" %>
        <% else %>
          <%= button_to 'Download', version.plist_url, class: 'download-btn btn-primary btn-small pull-right', method: :get %>
        <% end %>
      </li>

...

app.js.erb

...
$('.download-btn').on('click', function(){
  $.ajax({
    type: 'POST',
    url: "/user_versions/create/" + current_user[:id] +"/" + :version_id"
  });
});

1 个答案:

答案 0 :(得分:1)

让链接转到由rails应用程序控制的URL。然后,当请求到达您的控制器时,您可以记录命中,然后重定向到实际的下载URL。