С Rails 3 я рекомендую использовать файлы шаблонов js.erb, чтобы легко использовать переменные в вашем jQuery. Вы настраиваете свой контроллер для ответа на js-запросы, затем делаете запрос на этот URL-адрес, и отрендеренный js.erb будет выполняться в браузере как javascript, и он может использовать переменные, установленные действием вашего контроллера.
Ваш контроллер будет выглядеть примерно так:
class Users < ApplicationController
respond_to :js, :only => :me
def me
@current_user = User.find(session[:user])
respond_with(@current_user)
end
end
Тогда напишите что-нибудь подобное в me.js.erb
$('#current_user_token').html("<%= escape_javascript(@current_user.token) %>");
Вы можете вызвать ваше действие напрямую, добавив .js к вашему URL.
http://0.0.0.0:3000/users/me.js
Из шаблона просто используйте удаленную форму или ссылку, добавив параметр: remote => true
link_to "Show user token", me_users_path, :remote => true
ваш файл me.js.erb работает так же, как и любой другой файл JS, и вы можете иметь столько JS, сколько захотите. используйте теги ERB везде, где вы хотите использовать свои переменные или помощник, но не забудьте обернуть их в помощник escape_javascript "<% = escape_javascript (render @current_user)%>"
Чтобы просто запросить переменные без рендеринга шаблона js.erb, используйте предложение eggie5 и сделайте ajax-запрос к действию, которое отвечает на: json. Он вернет ваш @current_user как объект json.