将变量从JavaScript传递到Ruby会话

时间:2015-07-04 20:38:57

标签: javascript ruby ajax

我有一个简单的输入文本字段:

<input type="text" id="master_password" size="20" placeholder="Master Password" />
<a class="btn btn-default" id="master_submit" href="#">Submit</a>

和一些javascript听:

$(document).ready(function() {
  $('#master_submit').click(function() {
    alert("sometext");
  });
});

警报显然有效。我想将文本字段(#master_password)存储在session[:master_pass]中,因为我将使用它来解密存储在数据库中的许多密码。我很确定我必须使用一些AJAX,但根本不熟悉它。我将用js文件(或视图或控制器)替换警报以将数据存储为Ruby变量的代码是什么代码?

1 个答案:

答案 0 :(得分:3)

假设您正在使用Rails,您可以使用javascript向Rails应用程序发出AJAX请求,然后在Rails中,您可以设置session值。

在Javascript(jQuery)中:

var data = "password=" + encodeURIComponent($('#master_password').val());

$.ajax({
  url: '/my_controller/action',
  data: data,
  type: 'post'
})
.done(function(response) {
  // Do something with the response
})
.fail(function(error) {
  // Do something with the error
});

在Rails中,使用适当的路径设置控制器,并在操作中:

class MyController < ApplicationController
  ...
  def action # << name whatever you like
    session[:password] = params[:password]
  end
  ...
end