2011-10-20 4 views
2

한 라인이ruby ​​on rails : 모델의 변수 별칭?

def version=(version) 
    self.revision = version 
    end 

    def version 
    return self.revision 
    end 

을 할 수있는 방법이있다 (할당으로 m.attr_b뿐만 아니라 == m.attr_a을 할 수)? 나는 그것이하는 것이 꽤 보통 일 것 인 것처럼 느낀다. = \

답변

5

"모델"이라고하면 ActiveRecord 모델을 의미합니까?

이 경우 YES입니다.

class MyClass < ActiveRecord::Base 
    alias_attribute :version, :revision 
end 

원하는대로 할 수 있습니다. 일반 루비의 다른

alias :version :revision 
alias :version= :revision= 

또는

alias_method :version, :revision 
alias_method :version=, :revision= 
+0

이 깔끔한입니다. alias_method에 대한 매개 변수를 포함 할 수있는 방법이 있습니까? alias_method : latest_revision, : revision_at (nil)? – NullVoxPopuli

+1

그 시점에서 당신은'def latest_revision; revision_at (nil); 끝 ' –

+0

감사합니다! 나는 루비에서 세미콜론을 사용할 수 있는지 몰랐다. \ – NullVoxPopuli