我如何在这里定义类型?

时间:2020-10-19 01:48:40

标签: ruby

我有2个类似的课程:

class Client
  attr_accessor :name, :surname
  
  def initialize(name, surname, code)
    @name = name
    @surname = surname
    @code = code
  end
end

class Account
  attr_accessor :holder, :limit, :total, :number

  def initialize(holder, limit, total, number)
    @number = number
    @holder = holder
    @total = total
    @number = number      
  end
end

如何使Account的属性持有人成为客户?

1 个答案:

答案 0 :(得分:2)

如果要确保holderClient的实例,则可以使用guard语句。当它不满足您的需要时,就会引发错误! >

class Account
  attr_accessor :holder, :limit, :total, :number


  def initialize(holder, limit, total, number)
    raise ArgumentError, 'holder should be a Client' unless holder.is_a?(Client)

    @number = number
    @holder = holder
    @total = total
    @number = number      
  end
 
end