我正在尝试使用随机生成的类型运行不同的代码。创建随机类型(self.type
)有效。但是,我想使用这些类型:Early
,Late
或On 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
这适用于这行代码。它随机返回Early
,Late
或On 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
端
答案 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