我正在使用 Ruby 1.9.2 和 Ruby on Rails 3.2.2。我有以下方法:
# Note: The 'class_name' parameter is a constant; that is, it is a model class name.
def my_method(class_name)
case class_name
when Article then make_a_thing
when Comment then make_another_thing
when ... then ...
else raise("Wrong #{class_name}!")
end
end
我想了解为什么在case
上面的语句中,else
当我执行方法调用时,它总是运行“部分” my_method(Article)
,my_method(Comment)
等等。
我该如何解决这个问题?有人建议如何处理这个问题吗?