プラグインを作成していますが、モデルのセッター/ゲッターをオーバーライドするためにプラグインが必要です。これが私がこれまでに持っているコードです:
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
パラメータに注意してください。evaluedコードで出力すると、属性が設定されたときに正しい値が出力されますが、送信先のip2long
関数内で出力すると文字列が返されます。raw_value
したがって、文字列として解釈されずにこのパラメーターを渡すにはどうすればよいですか。 ?