spring of life

技術、ときどき日常のブログ(予定)

フォームの作成

ちょっと最近書いてなかったので更新!

Railsform_forを使って入力フォームの作成をやったので、ちょっと詰まったとこをメモ

パラメータの名前を変更する

  • 普通に実装するとモデル名が決まっているのでパラメータ名も決まる
<%= form_for @hoge do |f| %>
  <%= f.text_field :name %>
  <%= f.submit %>
<% end %>

と普通に書くとパラメータにはparams[:hoge][:name]て感じで入る

  • ここで、asオプションを指定すればパラメータの名前を変更できる
<%= form_for @hoge, {:as => 'fuga'} do |f| %>
  <%= f.text_field :name %>
  <%= f.submit %>
<% end %>

とすればparams[:fuga][:name]て感じで入る

submit後、Ajax通信を使って作成したデータを表示する

  • まず、remoteオプションを加える
<%= form_for @hoge, {:as => 'fuga', :remote => true} do |f| %>
  <%= f.text_field :name %>
  <%= f.submit %>
<% end %>
  • javascriptが実行されるので、<アクション名>.js.erbを用意する
$(<要素やID名>).append("<p><%= @hoge.name %></p>")

こんな感じでjavascriptを上手く書いてビューに表示させる