STI的辅助方法是否类似于枚举?

时间:2017-04-24 05:41:21

标签: ruby-on-rails ruby-on-rails-4

Rails 4引入了枚举,随之而来的是免费的辅助方法。以前,我使用枚举作为用户角色,所以我有user.manager?user.employee?等方法......但是,我决定使用STI作为用户角色。如何为类似于枚举的STI创建帮助方法?

1 个答案:

答案 0 :(得分:2)

抱歉,枚举是错误的工具。你不会自动获得任何东西,但你的角色可能只是少数,所以这些几行应该与你的用户模型很好。

lorem

这会给你 class User %w(Mananger Employee Customer).each do |klass| define_method "#{klass.downcase}? do self.class.name == klass end end end