我有一个“实用程序”类:
class Hostname
attr_reader :domain
def initialize(hostname)
@domain = Foo.bar(hostname)
end
end
我做的事情如下:
$ Hostname.new('www.abc.com').domain
> 'abc.com'
我希望这个类是ActiveRecord支持的,所以我可以将Hostname保存到我的数据库。
我已经阅读了许多反对覆盖ActiveRecord初始化方法的帖子。我是否需要为实用程序类设置单独的类/命名空间?
我想避免以下情况:
$ Hostname.new(:hostname => 'www.abc.com').domain
> 'abc.com'
什么是“轨道”方式?
答案 0 :(得分:0)
你问的是关于rails的方式,所以在这里:
class Host < ActiveRecord::Base
validates :name, presence: true
def domain
ActionDispatch::Http::URL.extract_domain(self.name)
end
end
Host.find_by_name('www.abc.de').domain # => abc.de