문제

모델 클래스에 값을 저장하려고합니다 (예 : 커플 확인란의 값).

클래스 인스턴스 변수에 저장할 수 있었지만 화면의 다른 위치를 클릭하면 이러한 값이 지워집니다.

내 클래스 인스턴스 변수의 값을 어떻게 유지 관리 할 수 있습니까?

예 :

class Person < ActiveRecord::Base

   def setAge(age)
      @@age = age

   def getAge
      return @@age
.

그러나 @@ Age가 설정되고있는 후에 비어 있습니다.

도움이 되었습니까?

해결책

Rails Framework는 development 모드에서 클래스를 다시로드합니다.클래스 변수에 대한 이전 요청에 설정된 값은 새 요청으로 손실됩니다.production 모드에서 서버를 실행하면 코드가 작동합니다.

동시 요청이 주를 덮어 쓸 수 있고 Rails 서버의 여러 인스턴스를 생성 할 때이 솔루션이 작동하지 않는 경우 (@intempo에서 언급했듯이)

두 클라이언트 요청을 통해 상태를 유지하려는 경우 session 변수를 사용하여 더 나은 꺼짐입니다.

요청 1

session[:age] = params['age']
.

요청 2

u = User.new
u.age = session[:age]
.

다른 팁

@NASH 언급 된 것이 여기에 루비 코드가 아닙니다.

클래스 수준에 데이터를 저장하면 현재 프로세스에만 유효합니다.즉, 승객과 다른 웹 서버와 같은 여러 프로세스를 실행하는 경우 이러한 프로세스간에 데이터가 공유되지 않는 경우를 의미합니다.

또한 연령 클래스 대신 사람 인스턴스와 관련이있는 소리가

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top