ruby-on-rails – Ruby常量查找
发布时间:2020-12-17 04:28:53  所属栏目:百科  来源:网络整理 
            导读:这可能是一个简单的问题,但我试图从值中查找 Ruby中的常量名称.例如: class Xyz ActiveRecord::Base ACTIVE = 1 PENDING = 2 CANCELED = 3 SENT = 4 SUSPENDED = 5end 我的数据库中的状态为1.我想基于此检索ACTIVE,以便我可以在视图中显示它. 有什么好办法
                
                
                
            | 这可能是一个简单的问题,但我试图从值中查找 
 Ruby中的常量名称.例如: 
  
  
  class Xyz < ActiveRecord::Base ACTIVE = 1 PENDING = 2 CANCELED = 3 SENT = 4 SUSPENDED = 5 end 我的数据库中的状态为1.我想基于此检索ACTIVE,以便我可以在视图中显示它. 有什么好办法呢? 解决方法class Module
  def constant_by_value( val )
    constants.find{ |name| const_get(name)==val }
  end
end
class Xyz
  ACTIVE    = 1
  PENDING   = 2
  CANCELED  = 3
  SENT      = 4
  SUSPENDED = 5
end
p Xyz.constant_by_value(4)
#=> :SENT但是,我不会这样做:使用程序化名称作为视图的值似乎是一个坏主意.您可能会遇到想要更改显示名称的情况(可能“暂停”应显示为“暂停”),然后您必须重构代码. 我使用模型中的常量在视图或控制器中放置一个映射: status_name = {
  Xyz::ACTIVE    => "Active",Xyz::PENDING   => "Pending",Xyz::CANCELED  => "Canceled",Xyz::SENT      => "Away!",Xyz::Suspended => "On Hold"
}
@status = status_name[@xyz.status_id](编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! | 
