복붙노트

[RUBY-ON-RAILS] 왜 액세스 액티브에 사용 "자기"/ 모델 속성 레일?

RUBY-ON-RAILS

왜 액세스 액티브에 사용 "자기"/ 모델 속성 레일?

내 응용 프로그램 자체를 통하여. 사용자의 이름을 참조 할 필요는 없습니다. 이름은 잘 작동합니다.

의도 한대로 왜 다음 코드는 일에 자기를 필요로 하는가?

class User< ActiveRecord::Base
    before_save :validate_name

def validate_name
    if self.name.nil? || self.name.empty?
        self.name= "Mr. No Name"
    end
end

그런데, 나는 validates_presence_of이 (가) 막아 방지하기 위해 사용될 수 있다는 것을 알고,하지만 난에 이름을 지정하지 않으면 디폴트로 저장합니다.

3.0.7 레일.

해결법

  1. ==============================

    1.종종 자기의 사용은 변수로 잘못 해석하기 메서드 호출 및하지로 그 인식 루비를 강제하는 것입니다. 방법이라는 일에 대한 사전 지식없이 = 다음 일 = 변수 할당과 같은 루비에 "X"를 찾습니다. self.day = "X"항상 메서드 호출입니다.

    종종 자기의 사용은 변수로 잘못 해석하기 메서드 호출 및하지로 그 인식 루비를 강제하는 것입니다. 방법이라는 일에 대한 사전 지식없이 = 다음 일 = 변수 할당과 같은 루비에 "X"를 찾습니다. self.day = "X"항상 메서드 호출입니다.

    사용자 클래스 파일을 구문 분석 한 후 이름과 이름이 = 방법이 동적으로 추가되기 때문에이 문제가되는 이유입니다. 모델이 관련 데이터베이스 필드의 메이크업 방법입니다 사용하지만 user.rb 파일을 구문 분석 한 후 이러한 상황이 발생하면 먼저 레일을 수행합니다.

  2. from https://stackoverflow.com/questions/10127393/why-use-self-to-access-activerecord-rails-model-properties by cc-by-sa and MIT license