2016-07-01 8 views
0

特殊文字で列挙型を作成する方法を教えてください。たとえば、 "blood_group"の列挙型を作成したいと思います。その値にはO +、O-、A +、A-などがあります。列挙型を目的の文字列表現に変換するヘルパーメソッドを使用することができます(たとえば、 "o_positive"を "O +"に変換できますが、これを行うにはよりクリーンな方法があります)。特別なcharectersで列挙型を作成する

答えて

0

通常は列挙型が実装されます

Blood.O+ || Blood.O- 
:何とかこの

enum status: [ :active, :archived ] 

などの記号を含めることによって、あなたのようなものになるだろう

Article.active 
Article.active? 
Article.active! 

のように使用のような

これは正常に動作するとは思われません。またはを加算すると、となります。他の変数でも、my-variableと書くことはできません。my_variableでなければなりません。

予約文字として+-を見てください。

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 
関連する問題