使用rails 4如何通过ajax控制器方法发送数据并返回对象ID

时间:2014-10-09 23:34:48

标签: jquery ruby-on-rails ajax

我觉得这应该很简单,但我是ajax的新手并在rails中使用ajax。

如果用户关注指向我网站的链接,该链接将包含令牌。在页面加载时,我抓住那个令牌。

我需要将令牌发送到控制器方法(我认为),通过令牌查找用户,并将该user_id发送回ajax调用。

我在js var中有令牌。我有一个控制器方法,但我被困在那里。

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

由于您事先没有用户ID,因此在控制器中设置RESTful结构会更加困难,尽管您可以在from_token中执行UsersController操作:

class UsersController < ApplicationController
  #...

  def from_token
    user = User.find_by_token(params[:token])

    respond_to do |format|
      format.json { render json: {user: {id: user.id}} }
    end
  end
end

在routes.rb中:

#...

resources :users do
  get 'from_token' => 'users#from_token'
end

根据您想要的JavaScript数据,可能更容易返回所有用户数据,而不仅仅是ID。在这种情况下have a look at jBuilder用于构建更复杂的JSON对象。

就JavaScript而言,它取决于您在浏览器中使用什么框架来制作ajax请求。如果它的jQuery(Rails默认)使用ajax get request API

var token = '{{extracted token}}';
$.get('/users/from_token.json?token=' + token, function(data) {
  var userId = data.user.id;
});