访问Rails /设计AJAX POST请求参数的辅助方法

时间:2014-10-29 08:02:04

标签: javascript ruby-on-rails ajax devise http-post

作为一种学习工具,我正在构建一个简单的分析应用程序,用于跟踪“客户端应用程序”上的页面访问,将POST请求发送到我的应用程序的服务器,我的应用程序创建一个带有已接收参数的事件。

我正在使用Devise进行身份验证,并且可以访问current_user。如何使用js访问current_user?

我想设置property_2,以便将当前用户的电子邮件发送到服务器。

这是application.js中的Javascript片段:

var blocmetrics = function(title, domain, count, email) {
  var _bm_event = {
    name: title,
    location: domain,
    property_1: count,
    property_2: email
  }

  var _bm_request = $.ajax({
      url: "http://localhost:3001/events",
      method: "post",
      data: {event: _bm_event}
  })
};

我正在调用application.html.erb中的blocmetrics函数:

<!DOCTYPE html>
<html>
<head>
  <title>Blocmarks</title>
  <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
  <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
  <%= csrf_meta_tags %>
</head>
<body>

  <div class="container">
    <div class="header">
      <div class="nav nav-tabs">
        <div class="pull-left nav-left">
          <%= link_to "Home", root_path %>
          <%= link_to "My Bookmarks", bookmarks_path %>
        </div>

        <div class="pull-right nav-right">
          <% if current_user %>
            Hello <span id="user"><%= current_user.name || current_user.email %></span>!
            <%= link_to "Sign out", destroy_user_session_path, method: :delete %>
          <% else %>
            <%= link_to "Sign in", new_user_session_path %>
            <%= link_to "Sign up", new_user_registration_path %>
          <% end %>
        </div>
      </div>
    </div>

    <% if flash[:notice] %>
      <div class="alert alert-success">
        <button type="button" class="close" data-dismiss="alert">&times;</button>
        <%= flash[:notice] %>
      </div>
    <% elsif flash[:error] %>
      <div class="alert alert-danger">
        <button type="button" class="close" data-dismiss="alert">&times;</button>
        <%= flash[:error] %>
      </div>
    <% elsif flash[:alert] %>
      <div class="alert alert-warning">
        <button type="button" class="close" data-dismiss="alert">&times;</button>
        <%= flash[:alert] %>
      </div>
    <% end %>

    <%= yield %>

  </div>

  <script>
    $(document).ready(function(){
      blocmetrics("page visit", window.location.origin, 1, $("#user").value);
    })
  </script>
</body>
</html>

0 个答案:

没有答案