Since 14.Jan.2009:08:29
プログラミングと絵のブログ
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
renderは部分テンプレートを読み込んで 出力の一部を別ファイルで作れるメソッドのこと。 基本的にViewはrender_to_stringと同じで文字列が作られる Controllerはよく分からん 実はRails2.3で少し書くのが楽になった Rails 2.3 render @todo render @todos Rails 2.2以前 render :partial => 'todo', :object => @todo render :partial => 'todo', :collection => @todos この二つが同じ意味。 元々:collectionはpartialの指定と、 ファイル内で使う変数名(collectionの単数形)を統一しないと機能しないから 当然といえば当然の修正 上のはどちらも コントローラ名/_todo.html.erbが呼ばれる 部分テンプレートにしたいファイルは「_」を付けると覚えておけばおk ただし、:partialの指定と同じ名前にしておくのが無難 そして単数形にしておくと更に無難 ちなみに:collectionを渡すとeachみたいに使える :locals => {symbol => object, ...}だとシンボルで指定した変数名に 値を入れて、部分テンプレートのファイル内で使用できる :localsとか:objectで渡すと1回分だけ出力される RJSについて renderとは違うけどこっちも似たようなもんだから RJSは.js.rjsという拡張子のファイルで使う記述方法 pageオブジェクトを使ってDOM操作ができる。 使い方は、scaffoldしたときにできるコントローラの一部を 使いたいアクションのところだけ respond_to do |format| format.html format.xml { render :xml => @todos } format.js <- ココを追加! end みたいにformat.jsを追加する そうすると、そのアクションと同名の、例えばindexアクションなら、 index.js.rjsファイルが呼ばれる RJSファイルの中ではpageオブジェクトを使って page[:DOMのid名].replace_html "Hello, World!" とすると指定したIDのDOM要素を入れ替えることができる これはprototype.jsの$()メソッドを使用。 page.select("セレクタ"). ... ならCSSのセレクタと同じ表記でDOMを指定することも可能 これはprototype.jsの$$()メソッド。 replace_htmlやinsert_htmlの引数は文字列だけでなく ハッシュでオプションを与えることもできて、 renderみたいに ... .replace_html :url => todo とすると、指定したDOM要素の中身が詳細画面になる URLでいえば コントローラ名/todo.id かな link_to_remoteで呼べば勝手にrjsファイルがデフォルトで呼ばれて、 画面遷移もなくすことができてウマウマです
PR
Comment
カレンダー
10 | 2024/11 | 12 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
ブログ内検索
プロフィール
HN:
uguisu_an
年齢:
35
性別:
男性
誕生日:
1989/08/20
自己紹介:
基本的にテキトー
カテゴリー
最新記事
(10/30)
(08/12)
(08/12)
(07/05)
(06/29)
最新コメント
[10/01 くゆる]
[09/21 uguisu_an]
[09/17 mayigo]
[07/17 uguisu_an]
[07/15 shinh]
最新トラックバック
アクセス解析
フリーエリア
P R