これは単純なもののように感じますが、私はajaxを初めて使用し、レールでajaxを使用しています。
ユーザーが私のサイトへのリンクをたどると、そのリンクにはトークンが含まれます。ページの読み込み時に、そのトークンを取得しています。
トークンをコントローラーメソッドに送信し(私が思うに)、トークンを介してユーザーを検索し、そのuser_idをajax呼び出しに返送する必要があります。
js varにトークンがあります。そして、私はコントローラーメソッドを持っていますが、そこに行き詰まっています。
助けてくれてありがとう。
回答:
回答№1は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だけでなく、すべてのユーザーデータを返す方が簡単な場合があります。その場合 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;
});