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: "非公開"