2016-07-22 1 views
1

몇 가지 예제로 작업하여 레일스를 배우고 있습니다.Ruby : 문법 이름 : 변수 :

class User < ApplicationRecord 
    # Include default devise modules. Others available are: 
    # :confirmable, :lockable, :timeoutable and :omniauthable 
    devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable, :validatable 
end 

나도 몰라 루비 문법은 다음과 같습니다 : 여기 내 샘플 모델 파일입니다 루비의시 모드가 일부 수의학 연구 후

devise :database_authenticatable, :registerable, 
      :recoverable, :rememberable, :trackable, :validatable 

, 나는 위의 명령을 알고 사용합니다, 그것은 방법 호출하지 않고 의미 괄호. 그래서 위의 명령이 있어야한다 : 나는 아직도 :variable의 문법 이름이 무엇인지 이해하지 못하는

devise(:database_authenticatable, :registerable, 
      :recoverable, :rememberable, :trackable, :validatable) 

. 나는 ...

감사

+2

기본적으로 변경할 수없는 (즉, 변경 불가능한) 문자열 인 [기호] (http://ruby-doc.org/core/Symbol.html)입니다. 일반적으로 Ruby에서 이름을 사용하는 데 사용됩니다 (예 : 메소드 이름, 옵션, ... –

답변

1

나는 이것이 당신이 찾고있는,하지만 : 앞에 문자의 문자열이 Symbol 어떤 것을 엄격하게 확실하지 않다.

요약하면 기호는 문자열과 같습니다. 단, 동일한 기호 리터럴에 대한 각각의 언급은 동일한 불변의 기본 값에 대한 참조입니다. 이 경우, 각 기호 (:database_authenticable, :registerable 등 ...)는 함수의 인수로 특정 값을 부여하고 있습니다. devise, 아마도 특정 속성을 설정합니다.

1

symbol 호출되는 : 앞에는 어떤 단어를 검색하지만 클래스의 예를 들어 @variable, @@variable을 알고있다. @Holger가 그의 주석에서 언급했듯이, 기호는 (가장 간단한 형태로) 불변의 문자열이다.

기호 가장 ​​일반적으로 키로서 사용되며, 내 키를 참조 할 Hash :

hash = { key: "value" } 

"value" 다음 상징으로 해시의 키를 호출하여 참조 할 수 있습니다 :이 호출된다

hash[:key] 
=> "value"