/ / Rails 4を使用して、ajaxコントローラメソッドを介してデータを送信し、オブジェクトIDを返す方法

レール4を使用する方法ajaxコントローラメソッドを介してデータを送信し、オブジェクトIDを返すにはどうすればいいですか?jquery、ruby-on-rails、ajax

これは単純なもののように感じますが、私は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;
});