LoginSignup
36
45

More than 5 years have passed since last update.

Simple_formの使い方

Last updated at Posted at 2016-05-22

simple_formの使い方

すぐに忘れてしまうので個人的メモ
実行環境
cloud9
rails 4.2.5
bootstrap twitter-bootstrap-rails 3.2.2

インストール方法

Gemfileに記述

Gemfile
gem 'simple_form'

ターミナルからインストールする

terminal
unchiman: ~/workspace $ bundle install

simple_formをbootstrapに適用させる
※bootstrapを使わない場合は--bootstrapを削除

terminal
unchiman: ~/workspace $ rails generate simple_form:install --bootstrap

使い方

投稿フォームへ記述する

投稿フォームのview.html.erb
<%= simple_form_for @user do |f| %>
  <%= f.input :username %>
  <%= f.input :password %>
  <%= f.button :submit %>
<% end %> --bootstrap

scaffoldで「user」で自動生成した場合は一度下記のコマンドを入力してbootstrapを更新。

terminal
unchiman: ~/workspace $ rails g bootstrap:themed Users

フォームが変更されているのを確認して、サーバーの再起動!

_form.html.erb
<%= simple_form_for @user, :html => { :class => 'form-horizontal' } do |f| %>
  <%= f.input :name %>
  <%= f.input :password %>
  <%= f.input :email %>
  <%= f.input :regist_date %>
  <%= error_span(@user[:regist_date]) %>

  <%= f.button :submit, :class => 'btn-primary' %>
  <%= link_to t('.cancel', :default => t("helpers.links.cancel")),
                users_path, :class => 'btn btn-default' %>
<% end %>

ひょっとするとerror_spanってのが各inputの間にかかれているけど、全部削除してもOK。
消してもヌルヌル動く

_form.html.erb
  <%= f.input :regist_date %>
  <%= error_span(@user[:regist_date]) %> ←この列は削除

オプションについて

カンマで区切って追加していく。オプション指定が複数ある場合もカンマをつければOK

_form.html.erb
<%= simple_form_for @user do |f| %>
 <%= f.input :name, オプション  %>

ラベル名の変更
label: "ラベル名"

ラベル名を消す
label: false

エラーメッセージ(投稿に失敗したときに表示される)
error: "エラーでおま"

エラーメッセージを表示させない
error: false

ヒントメッセージ(エラーと違って常に表示される)
hint: "ヒントでおま"

プレースホルダー
placeholder: "プレースホルダー"

ファイルの投稿フォームにする(file_field)
as: :file

ボタンの表示を変える
"押してね"

以下記入サンプル

_form.html.erb
  <%= f.input :name, label: "ラベル名", error: 'エラーを表示する'  %>
  <%= f.input :body, placeholder: 'プレースホルダー', label: false %>
  <%= f.input :image, as: :file %><%# as: :fileでアップロードフォームが作れる %>
  <%= f.input :styles, hint: 'ヒントの表示', error: flase%>
  <%= f.button :submit, "押してね", :class => 'btn-primary' %>

実行サンプル画像

alt

追記

inputでboolean, true flaseの動作をさせる

_form.html.erb
<%= f.input :accepts, as: :boolean, checked_value: true, unchecked_value: false %>
36
45
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
36
45