이것은 매우 간단한 질문 일지 모르지만 그 답을 찾을 수 없습니다. javascript/jQuery (백본보기에서)의 레일 세션 변수에 어떻게 액세스해야합니까? 대부분 이것이 최선의 방법은 아니지만 이것은 나에게 문제가되지 않습니다. 백본보기에서 레일 세션 변수에 액세스하기
는 알렉산드라답변
gon gem을 사용할 수 있습니다. 그것은 각 요청과 함께 자동으로 데이터를 보내고 자바 스크립트에서 액세스 할 수 있습니다.
예를 들어, Gemfile에있는 보석을 포함한 후, 당신은 당신의와 ApplicationController에 필터 전에를 추가 할 수 있습니다
class ApplicationController < ActionController::Base
before_filter :set_gon
...
protected
def set_gon
gon.my_session_variable = session[:my_session_variable]
end
end
를 응용 프로그램 레이아웃에서 단면 헤드를 당신의 HTML :
<%= include_gon %>
이제이 값을 자바 스크립트에서 읽을 수 있습니다.
alert(gon.my_session_variable)
이렇게하면 귀하의 아약스 응답에 요청에 대한 특정 데이터를 포함하고 모든 추가 정보는 gon 변수에서 사용할 수 있습니다.
아니, 세션 변수는 서버에있는 감사합니다, 그래서 자바 스크립트/jQuery로 세션 변수에 액세스 할 직접적인 방법은 없습니다.
:가장 좋은 방법은 당신이 직접 자바 스크립트에 액세스 할 수 있도록 예를 JSON 형식에서 원하는 세션 변수를 반환하는 정의 URL로 서버에 자바 스크립트/jQuery로 Ajax 호출을 만드는 것입니다
{
"sessionVariableName": "sessionVariableValue"
}
아니요, 이것은 분명히 모범 사례가 아닙니다. 세션 변수는 서버 IMO에 있어야합니다.
그냥 경우이
ejosafat의 대답은 유효하지만
, 나는 백본에서 레일 세션 변수에 액세스하는 데 필요한 주요 이유가 수정할 수 있도록했다 ... 누군가 도움이 될 수 있습니다. 내가 원하는 것을 확실히 알지 못하기 때문에, 나의 질문은 모호했다. (예를 들어, 세션 변수에 액세스하는 것이 직접적인 프로세스 일 필요는 없었다.)하면의 값을 보내 sessions_controller.rb 파일
에 필요한 레일 세션 변수를 초기화해야합니다 : 내 목표를 달성 결국 방법은 다음과 같은 4 단계 프로세스를 사용하여이었다 백본으로 수정할 수있는 세션 변수 (필자의 경우 세션 변수는 사용한 레일 컨트롤러에서 액세스 한 다음 해당 레일보기로 보낸 다음 백본 app.js 파일로 전송하여 액세스 가능하게 만들었습니다. 필요한 백본보기로)
백본에서 GET 요청을 기반으로 레일 세션 변수를 업데이트 할 수있는 레일 측 (사용 된 컨트롤러에서) 예를 들어
def modify_session_variables if params[:taskParentId] session[:task_parent_id] = params[:taskParentId] end end
세션 상태를 나타내는 골격 변수는 사용자에 의해 변경 될 때마다 레일 세션 변수에 대한 업데이트 된 값 (들)로 서버에 AJAX 요청을 전송.
saveAsParentTask: function() { var self = this; $.ajax({ url: '/modify_session_variables', type: 'GET', data: { taskParentId: self.getId() }, async: false, success: function() { App.filtersState.setSubtreeParent(self); } }); },
이 과정은 한 (들) 그가 로그 아웃하지 않는 한 사용자 선택을 저장합니다 : 예를 들어, 내 백본 모델 중 하나는 그것의 속성 중 하나가 수정 세션 변수를 업데이트합니다 응용 프로그램. 조금 복잡하지만 내가 원하는 방식대로 작동합니다.
- 1. 레일즈 모델에서 세션 데이터에 액세스하기
- 2. Python에서 전역 변수에 액세스하기
- 3. Websphere 변수에 액세스하기
- 4. 메소드 선언으로 변수에 액세스하기
- 5. 데이터베이스 변수에 액세스하기
- 6. Symfony2 경로 변수에 액세스하기
- 7. 다른 방법으로 변수에 액세스하기
- 8. Requesthandler 외부의 변수에 액세스하기
- 9. Devise 구성 변수에 액세스하기
- 10. 구조체에서 변수에 액세스하기
- 11. TideSDK | JavaScript에서 루비 변수에 액세스하기
- 12. Struct.new 블록에서 클래스 변수에 액세스하기
- 13. .length를 사용하여 Javascript에서 변수에 액세스하기
- 14. 다른 메소드에서 변수에 액세스하기 (Java)
- 15. 컨트롤러에서 선언 된 변수에 액세스하기
- 16. NodeJS - 다른 모듈에서 변수에 액세스하기
- 17. 플래시에서 버튼이있는 프레임에서 변수에 액세스하기
- 18. 자바 스크립트에서 참조로 변수에 액세스하기
- 19. 자바 스크립트에서 객체 변수에 액세스하기
- 20. 로드 함수에서 외부 변수에 액세스하기
- 21. 구조체 내에서 공용체에서 변수에 액세스하기
- 22. 레일 세션 ID는 025입니다.
- 23. 보석 내부의 모듈에서 레일 세션 변수에 액세스하는 방법
- 24. 이미지를 세션 변수에 저장
- 25. 세션 변수에 넣을 내용
- 26. 다른 클래스에서 변수에 액세스하기 아이폰 개발
- 27. Firefox 확장 프로그램에서 전역 변수에 액세스하기
- 28. Rails - 테이블 루프에서 일대 다 변수에 액세스하기
- 29. Javascript에서 Spring WebFlow EL 변수에 액세스하기
- 30. 클래스 내의 함수에서 변수에 액세스하기 (범위?)