ruby随机字符串比较法

时间:2014-06-11 02:37:24

标签: ruby string methods random compare

我正在尝试使用随机生成的类型运行不同的代码。创建随机类型(self.type)有效。但是,我想使用这些类型:EarlyLateOn Time来有条件地运行基于字符串self.type返回的代码。提前谢谢!

require 'rubygems'
require 'forgery'

class Forgery::MyRecord< Forgery

  TYPES= Forgery::Extend([
    { :type => "Early" },
    { :type => "Late" },
    { :type => "On Time" }
  ])

  def self.type
    TYPES.random[:type]
  end

  a=self.type
  puts a

这适用于这行代码。它随机返回EarlyLateOn Time。 但是,我如何在我的方法中使用type?谢谢!

  def self.deadline
    if self.type=="Early"
      puts "early"
      #removed other code
    elsif if self.type=="Late"
      puts "late"
      #removed other code
    elsif if self.type=="On Time"
      puts "on time"
      #removed other code
    else 
      puts "Missing"
    end   
  end

  b = Forgery::MyRecord.deadline
  puts b 
end

1 个答案:

答案 0 :(得分:1)

您的问题是:每次拨打type时,都会返回一个随机值。因此,请检查每个if条件中的不同值。

将您的代码更改为:

def self.deadline
  case type
  when "Early"
    puts "early"
    # removed other code
  when "Late"
    puts "late"
    #removed other code
  when "On Time"
    puts "on time"
    #removed other code
  else 
    puts "Missing"
  end   
end