使用特殊字符创建枚举

时间:2016-07-01 01:43:59

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

如何使用特殊字符创建枚举。例如,我想为" blood_group"创建一个枚举。其值包括O +,O-,A +,A-等。我可以有一个帮助方法,将枚举转换为所需的字符串表示形式(例如,我可以将" o_positive"转换为" O +",但是有更简洁的方法可以做此?

2 个答案:

答案 0 :(得分:0)

通常会以某种方式实现枚举

enum status: [ :active, :archived ]

然后像

一样使用
Article.active
Article.active?
Article.active!

因此,通过包含符号,您将得到类似的内容:

Blood.O+ || Blood.O-

这被认为不起作用,因为我们假设您通常使用添加减去。即使是其他变量,也不能写my-variable,它必须是my_variable

所以,只需将+-视为保留字符。

答案 1 :(得分:0)

使用此代码:

class Conversation < ActiveRecord::Base
 enum blood_group: ["O+", "O-","A+","A-"]
end

class ApplicationController < ActionController::Base
 helper_method :method_name
 def convert(str)
  sym= nil
  a= str.split("_")
  if str.split("_").last == "positive"
  sym = "+" 
  else
  sym = "-"
  end
  return (str.split("_").first + sym).upcase
end
end