我觉得这应该很简单,但我是ajax的新手并在rails中使用ajax。
如果用户关注指向我网站的链接,该链接将包含令牌。在页面加载时,我抓住那个令牌。
我需要将令牌发送到控制器方法(我认为),通过令牌查找用户,并将该user_id发送回ajax调用。
我在js var中有令牌。我有一个控制器方法,但我被困在那里。
非常感谢你的帮助。答案 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;
});