1
플러그인을 만들고 있는데 모델에 대한 setter/getter를 재정의해야합니다. 지금까지 가지고있는 코드는 다음과 같습니다.레일 3 모델 설정 도구를 재정의
module Iplong
extend ActiveSupport::Concern
module ClassMethods
...
def override_setter
self.class_eval %(
def #{attribute}=(raw_value)
self[:#{attribute}] = #{ip2long('raw_value')}
end
)
end
end
end
ActiveRecord::Base.send :include, Iplong
raw_value
매개 변수에 유의하십시오. 내가 평가 된 코드에서 인쇄하면 속성이 설정되었을 때 올바른 값을 인쇄하지만 문자가 함수 내에서 인쇄되면 문자열이 반환됩니다. raw_value
그래서 해석하지 않고이 매개 변수를 전달하려면 어떻게해야합니까? 문자열로?
"#{ip2long('raw_value')}"
루비 코드를 문자열에서이 번역 당신이 얻을 것 : 그래서
ip2long('raw_value')
실제로 'RAW_VALUE을 보내는
그 시도 <클래스 : 0x00000003bc72a0>'확실하지 –
을 prob. 수도 있지만 당신이 내가 무슨 뜻인지 볼 수 있도록 몇 가지 샘플 코드를 포함하는 대답을 편집. –