2017-11-18 8 views
1

Railsでこのような列挙型を作成できますか?Rails enum:publicとprivate

enum status: [:public, :private] 

原因は私に、パブリックメソッドは、この列挙に作成されますというエラーをスローし、理にかなっているので、私はこのようなものがあります。たとえば

object.public! 

を。

答えて

1

残念ながら、ActiveRecordでは予約されたメソッド名であるため、publicまたはprivate(またはnewなど)の列挙型を定義することはできません。これに関してはissuesが報告されていますが、修正されないため閉鎖されています。

状態の列挙型が単にpublicまたはprivateの場合、それをブール値として格納する方が意味があります。あなたは、あなたが望むことをする列挙型のように動作する2つのメソッドを作成することができます。デフォルトを設定するためのブール列を作成する場合

def public! 
    self.public = true 
end 

def private! 
    self.public = false 
end 

を忘れないでください:あなたのモデルでは

add_column :people, :public, :boolean, default: false 
+1

おかげで男を、私はこれに関連するものをfouding波平。とにかく、提案のおかげで! –

関連する問題