はじめに
学習中に、simple_formを使用してフォームを作成したので、記録として残します。
simple_formとは
Railsには、標準のform_withを使ってフォームを作成することができますが、simple_formを使うことによって、簡単に、よりシンプルにフォームを作成することができます。
導入
gem 'simple_form'
$ bundle install
次に、以下のコマンドでインストール(初期化)します。
$ rails g simple_form:install
=> create config/initializers/simple_form.rb
exist config/locales
create config/locales/simple_form.en.yml
create lib/templates/erb/scaffold/_form.html.erb
使い方
以下のように記述することで、ラベルと入力用のフォームを同時に作成してくれます。
これが、simple_formの便利なとこですね。
= simple_form_for @user do |f|
= f.input :last_name
= f.input :first_name
= f.input :email
= f.input :password
= f.input :password_confirmation
= f.submit
css適用してないので、汚いフォームですが以下のようにフォームが作成されます。
この、「f.input」が何をしているかは、以下の記事
simple_form の f.input が呼ばれた時何が起こっているかコードリーディングして調べてみた
ラベルの日本語化(I18n)
設定ファイルで以下の記述を行うことにより、日本語化の設定を行う。
# config/application.rb
config.i18n.default_local = :ja
そして、ja.ymlファイルに以下のように記述していく。
simple_form.ja.yml
ファイルは、rails g simple_form:install
した際に作成される。
ja:
simple_form:
labels:
user:
last_name: '姓'
first_name: '名'
email: 'メールアドレス'
password: 'パスワード'
password_confirmation: 'パスワード確認'
オプション
simple_formには様々なオプションがあります。
= simple_form_for @user do |f|
= f.input :last_name, label: '名字'
= f.input :first_name, label: '名前'
= f.input :email, hint: '@example.comを使用'
= f.input :password, placeholder: '誕生日は避ける'
= f.input :password_confirmation, placeholder: 'パスワード確認
= f.submit
・ラベル
・ヒント
・プレースホルダー
のオプションをつけると以下の表示になります。
他の様々なオプションは、公式リファレンスで確認できます。
最後に
公式リファレンスから色々試してみると面白そうですよね!
ぜひ試してみてください!