rails:844
From: Hiroshi Takagi <gollum@h...>
Date: Sat, 31 Dec 2005 20:37:09 +0900
Subject: [rails:844] Re: ドロップダウンボックスからのページ遷移/RJS風味
高木宏@cuzic さんの#824 の質問を RJS template 風味で料理。 RJS template は、Rails 1.0 にははいってませんが Edge Rails で使えます。 gem Rails でも plugin を使えば利用できます。(←わたしはこれ) On Fri, 23 Dec 2005 00:29:01 +0900 cuzic <tomoya@c...> wrote: > rails をやっていると、java script と ruby と css と sql を > 同時に勉強することになって、なかなか楽しい毎日です。 > > それはともかく、今 rails で ドロップダウンボックス(select タグ)から > 一つを選択したら自動的に画面遷移をするというのを作ろうと > しています。 > 参考:http://iswebmag.hp.infoseek.co.jp/sample005.html > > こういうのを ruby on rails で作ろうとするときは、 > どうするのが定石なのでしょうか? (snip) :controller, :action でどんなことがしたいのかよくわかりませんが、 RJS template と observe_field で作るとこんな風なのができました。 たいしたことやってるわけではないのに、MVC に散らばって返ってわかりにくい かな?(汗 [ テーブル locations ] mysql> select * from locations; +----+---------------+-----------------------------------+ | id | menu_opt | url | +----+---------------+-----------------------------------+ | 4 | Ruby site | http://www.ruby-lang.org/ja/ | | 5 | Ruby on Rails | http://www.rubyonrails.com/ | | 6 | Rail ML forum | http://www.ruby-forum.com/forum/3 | +----+---------------+-----------------------------------+ [ model : app/model/location.rb ] class Location < ActiveRecord::Base end [ controller : app/controllers/menu_controller.rb ] class MenuController < ApplicationController model :location def index end def jump_to_option @location = Location.find(@params[:opt_id]) end end [ view : app/views/menu/index.rhtml ] <h1> Select Option </h1> <%= @options = Location.find(:all) collection_select(:menu, :opt_id, @options, :id, :menu_opt, {:include_blank => true, :size => 10 } ) %> <%= observe_field 'menu_opt_id', :url => { :action => 'jump_to_option' }, :with => "'opt_id=' + escape(value)" %> [ RJS template : app/views/menu/jump_to_option ] page.alert "Jump to #{@location.menu_opt}..." page.redirect_to "#{@location.url}" ----------------------------------------------------------- 一行もJavascript を書かずにできるかやってみたけど、 :with => "'opt_id=' + escape(value)" あたりが、Javascript っぽくてちょとやだ(^^;; RJS template には、:complete アクションしか記載できませんが、 ・一度に複数のDOM elements を扱える。javascript_tag を書くことが減る。 ・動きのシナリオが .rjs に集まって見通しがいい。 ので重宝してます。 RJSで できることはここらへんに。 http://caboo.se/doc/classes/ActionView/Helpers/PrototypeHelper/JavaScriptGenerator.html -- Hiroshi Takagi <gollum@h...> -- ML: rails@r... 使い方: http://QuickML.com/
824 2005-12-22 16:29 [tomoya@c... ] ドロップダウンボックスからのページ遷移 825 2005-12-22 16:53 ┣[gollum@h... ] 826 2005-12-22 16:56 ┣[yu1@t... ] 827 2005-12-23 01:00 ┃┗[tomoya@c... ] -> 844 2005-12-31 12:37 ┗[gollum@h... ] Re: ドロップダウンボックスからのページ遷移/RJS風味