おおいしつかさ


旅行とバイクとドライブと料理と宇宙が好き。
Ubie Discoveryのプログラマ。
Share:  このエントリーをはてなブックマークに追加

Railsで画面を遷移せずにデータを書き換える

  「Railsレシピ」を読みながら試してみます。
 script.aculo.usのInPlaceEditorを使うので、RailsというよりもJavascriptのノウハウですが、Railsには最初からヘルパーが用意されているのでJavascript書く必要はないよ、ということみたい。
Large

 viewのとあるページで以下のように表示していたとすると

<%= h diary.title %>  
<%= h diary.text %>  

 InPlaceEditorのヘルパーを使って以下のように書き直します。

<%= in_place_editor_field :diary, :title %>  
<%= in_place_editor_field :diary, :text, {}, :rows => 10 %>  

 引数は、インスタンス名、インスタンス変数、 オプション、 行数の順です。rowsを1にしていると(デフォルト)、クリックしたときにテキストフィールドが表示されますが、2以上ならばテキストエリアが表示されます。
Large

 さらにRailsでは、POSTを受け取るコントローラのアクションも簡単に用意できます。

  in_place_edit_for :diary, :title  
  in_place_edit_for :diary, :text  

 これをコントローラに追加するだけ。他には何もする必要がありません。便利だなあ。正直、プログラミングしている気にはなりませんが……。