Tatehitoの日記

いろいろ書きます。Webエンジニアをしています。

【Rails】simple_formでモデルに存在しないフィールドを扱う方法

modelにattr_accessorを定義することで、モデルにフィールドとして存在しなくてもsimple_formで扱えるようになります。

Model

# 'hoge'はmodelにフィールドとして存在しない
attr_accessor :hoge

View

Viewはこちら。チェックボックスを定義する例です。

<%= f.check_box :hoge %>

f.check_boxだとチェック有 -> '1'、チェック無 -> '0'となります。booleanで扱いたい場合は以下のようにf.input_fieldを使い、checked_valueunchecked_valueで値を指定します。

<%= f.input_field :hoge, as: :boolean, checked_value: true, unchecked_value: false %>

参考

github.com