加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

有没有Ruby方法来删除初始化器中的样板代码?

发布时间:2020-12-16 21:02:57 所属栏目:百科 来源:网络整理
导读:我写了很多初始化代码,将attrs设置为参数,类似于: class SiteClient attr_reader :login,:password,:domain def initialize(login,password,domain='somedefaultsite.com') @login = login @password = password @domain = domain end end 有没有更多的Ruby
我写了很多初始化代码,将attrs设置为参数,类似于:
class SiteClient
    attr_reader :login,:password,:domain

    def initialize(login,password,domain='somedefaultsite.com')
      @login = login
      @password = password
      @domain = domain
    end
  end

有没有更多的Ruby方式这样做?我觉得我一遍又一遍地编写相同的样板设置代码.

解决方法

你可以使用Ruby Struct
class MyClass < Struct.new(:login,:domain)
end

或者你可以尝试一些宝石,即Virtus:

class MyClass
  include Virtus.model

  attribute :login,String
  attribute :password,String
  attribute :domain,String
end

然后(在两种情况下):

MyClass.new(login: 'a',password: 'b',domain: 'c')

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读