Im Newby, так что, может быть, его очень глупо qustion) У меня есть контроллер:Почему объект становится null? (Rails4)
class MainPageController < ApplicationController
def uid=(xid)
@uid=xid
end
def idx
response.headers.delete('X-Frame-Options')
@uid=params[:user_id]
log=Logger.new(STDOUT)
log.debug("UID #{@uid}")
log.debug("#{params[:access_token]}")
app=VK::Application.new(app_id: 4914826, app_secret: 'ZjeOFuApRPVdvL234Tsu', version: '5.31', access_token: params[:access_token])
end
def queue_req
end
def app_init
#vkjson=app.friends.getOnline uid
response.headers.delete('X-Frame-Options')
log=Logger.new(STDOUT)
log.debug("UID FO JSON #{@uid}")
render json: {'uid'=>@uid}.to_json
end
end
IDX - вызывается маршрут по умолчанию. Вид по умолчанию - после инициализации некоторых js-вызовов init с использованием ajax. И я получаю ответ, что @uid имеет значение null. В журналах - в idx - @uid - coorect, а в init - уже null. Зачем?
Вот часть кода страницы
<script type="text/javascript">
VK.init(function() {
$.ajax({
url: 'http://localhost:3000/init', // JSON_URL is a global variable
dataType: 'json',
error: function(xhr_data) {
alert ('Error')
},
success: function(xhr_data) {
alert(xhr_data.uid)
},
contentType: 'application/json'
});
});
</script>
Что плохого в коде? Спасибо!
вы не отправляете данные в запросе Ajax и вы ожидаете данные в Params переменного? – ppascualv
Я не уверен, что вы пытаетесь сделать. Но ответ, вероятно, связан с тем, что каждый запрос обрабатывается другим экземпляром класса контроллера. Таким образом, переменные экземпляра не разделяются между запросами. – jphager2
@ jphager2 Я думаю, что я понял, что мне нужно правильно. Хорошо, я спрошу иначе. Когда пользователь впервые посещает мою страницу - я получаю (iav get :)) набор параметров, в следующий раз - я должен уже использовать эти параметры. Как я могу их сохранить (конечно, песоном для каждого пользователя), без сеансов? – AlexB82