ruby-on-rails – Rails 4枚举 – 如何测试相等性?
发布时间:2020-12-17 03:23:51 所属栏目:百科 来源:网络整理
导读:我使用的是Rails 4.1和 Ruby 2.1.1 我的用户模型中有一行: enum role: [:user,:admin,:team_admin,:domain_admin,:super_admin] 在我的控制器中,我想只做一些事情,如果我的用户是:domain_admin并且我使用以下测试: if @user.role == :domain_admin 当@ us
我使用的是Rails 4.1和
Ruby 2.1.1
我的用户模型中有一行: enum role: [:user,:admin,:team_admin,:domain_admin,:super_admin] 在我的控制器中,我想只做一些事情,如果我的用户是:domain_admin并且我使用以下测试: if @user.role == :domain_admin 当@ user.role(在控制台中)返回:domain_admin时,测试返回false.所以价值设置得当,但我必须误解测试它的平等性,或者枚举不像我以前想的那样工作.我从阅读文档中假设它们是(小)整数的薄层. 任何人都可以告诉我如何测试domain_admin的相等性,以及如何测试> =:domain_admin? 非常感谢. 解决方法@user.domain_admin? # return true if :domain_admin 代替: @user.role == :domain_admin 使用: @user.role == "domain_admin" 一些测试: => User.roles => {"user"=>0,"staff"=>1,"admin"=>2} => u = User.last => u.role => "user" => u.role == "user" # <-- this => true => User.roles.each_pair { |x,_| puts u.role == x } => true => false => false (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |