我有一个应用程序,允许用户下载应用程序的最新版本。我需要在用户点击链接时进行记录。我创建了一个跟踪这些数据的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"
});
});
答案 0 :(得分:1)
让链接转到由rails应用程序控制的URL。然后,当请求到达您的控制器时,您可以记录命中,然后重定向到实际的下载URL。