概要
みなさんこんにちはcandleです。
今回はrailsのformをremoteを使ってajaxしたいとおもいます。
正直、解説するまでもなく簡単です。
前提
適当なrailsプロジェクトが存在する
scaffoldの使い方を把握している
twitter bootstrap gemを使って解説をしています
twiwtter bootstrap gemはデザイン名で見やすくする為に使うので、無くても構いません。
もしも、記事と同じ様に、進行したい場合は下のURLを参考にしてください。
ruby on rails4でtwitter bootstrap 3のgemを使用してscaffoldを作成する
scaffoldを作成する
scaffolを作成します。
railsのプロジェクト内で以下のコマンドを実行して、作成します。
rails g scaffold RemoteForm title:string description:text
作成されたら、マイグレーションファイルをデータベースに反映させます。
rake db:migrate
twitter bootstrap gemを入れている場合は
下のコマンドでデザインを適応させます。
rails g bootstrap:themed RemoteForms
これでscaffoldが完成しました。
普通にフォームを送信してみる
以下にアクセスすると、
http://localhost:3000/remote_forms/new
普通のフォームが出てきます。
サンプル用に1つ新しくデータを送信しておいてください。
内容を記述して、「Create remote form」を押すと、送信されます。
remoteの属性を与えてajax化する
送信するのみなら、ajax化は楽勝です。
app/views/remote_forms/_form.html.erb
を開いて、form_forの部分を以下の様に変更します。
<%= form_for @remote_form, remote: true, :html => { :class => 'form-horizontal' } do |f| %>
@remote_formの後に「remote: true」と書くだけです。
ちなみにこちらの表記でも動きます。「data: { remote: true }」
あとは、フォームの値を変更するならい作成するなりして、送信すればそれがajaxになります。
まとめ
ここまで簡単なら、別段記事にしなくても良かったのですが、まとめておきます。