enumerizeをboolean型のカラムに対応するには
みなさんはenumerizeを使っていますか。私は使っています。大好きです。
enumerize + simple_formをセットで使っています。
しかし、boolean型のテーブルのカラムに対して対応しようとすると
どう対応すればいいのか、迷いますね。
ちなみに、なぜboolean型をenumerizeに対応するかというと、文言表示を簡単に処理したいから。
つまり、true , false という値に対応する文言を簡単処理したいからである。
たとえば 公開(true) , 非公開(false)という 公開状況をformにラジオボタンを設置する時と
詳細ページに保存した値を表示するときに(enumerize + simple_form)セットで使うと
以下のように簡単にできる。
model
enumerize :publish, {:public => 'true' , :private => 'false'} , :default => :public
注意点は:trueとfalseを文字列としていれないと, falseのほうの処理がうまくいかないバグがでる。
viewの form
<%= simple_form_for @company,:url=>xxx, :class=> "xxxx" do |c| %> ........ ........ <%= c.input :publish , :as => radio_buttons %> #これで公開、非公開ラジオボタンができてしまう。 ........ ........ <% end %>
viewのshowページで普通に
<%= @company.publish_text %> # 公開か非公開が表示されるはず。
でいい。簡単でしょう。
I18nの対応
enumerize publish public: "公開" private: "非公開"