内容へ移動
Cat Paw Software
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
トレース:
rails:url
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== railsのURL ====== Rails v2.1 URL設定は config/routes.rb に書く 現在のURL設定は rake route で見る。 URLは基本的にlink_toメソッドに作らせる ===== link_toのオプション ===== * '':anchor'' : アンカー(#hogehogeのhogehoge)を設定 * '':only_path'' : falseにするとFQDNを作る。trueの場合サーバルート相対パスを作る。デフォルトtrue * '':host'' : ホスト名を指定、FQDNでなくてはならないのでonly_pathをfalseに * '':popup => true'' : サブウィンドウを開いて表示 * '':protocol'' : https、httpなどのプロトコルを指定。httpのページでhttpsにリンクを貼りたい場合は、FQDNでなくてはならないのでonly_pathをfalseに * '':confirm => "メッセージ"'' : 確認ダイアログボックスを出す。 ===== routes.rb ===== <code ruby> ActionController::Routing::Routes.draw do |map| # モデルhogeに対応するrestfulでCRUDのURLを設定する map.resources :hoges end </code> ===== 一対一、一対多モデルに対応したURLを作る ===== 以下のような一対一、一対多のモデルがあるとき… <code ruby> class Parent < ActiveRecord::Base has_one :alonechild has_many :manychilds end class AloneChild < ActiveRecord::Base belongs_to :parent end class ManyChild < ActiveRecord::Base belongs_to :parent end </code> routes.rbに以下の設定すると…、所有リソースの追加メソッドと対応URLが作成される <code ruby> ActionController::Routing::Routes.draw do |map| ... # この2行を追加 map.resource :parents :has_many => manychilds map.resource :parents :has_one => alonechild end </code> erbで <%= link_to "リンク1", new_parent_manychild_path(@parant) %> <%= link_to "リンク2", new_parent_alonechild_path(@parent) %> レンダリング結果 <a href="/railsroot/parents/1/manychild/new">リンク1</a> <a href="/railsroot/parents/1/alonechild/new">リンク2</a> 呼び出されるコントローラはそれぞれ * ManyChildsController#new * AloneChildsController#new ===== URLを個別に設定 ===== たとえばモデル hoge が画像パスを持っていて、対応する画像データを削除するアクションメソッドremoveを作ったとする <code ruby> class HogesController def remove # 画像削除処理を書く @hoge = Hoge.find(params[:id]) if File.exists @hoge.image_path File.unlink @hoge.image_path end @image_path = nil @hoge.save end end </code> 何も設定しないとURLは hoges/remove/1 となるが、意味が分かりにくいURLなので hoges/1/image/remove というURLにしたい。 この場合は、routes.rbに <code ruby> ActionController::Routing::Routes.draw do |map| map.connect 'hoges/:id/image/remove', :controller => 'hoges', :action => 'remove' end </code> という設定を加える。 このとき''rake routes''を行うと… /hoges/:id/image/remove {:action=>"remove", :controller=>"hoges"} という行が加わっているのが分かる。 この''hoges/1/image/remove'' というURLをビューのlink_toメソッド作るには、 <%= link_to '画像を削除', {:controller => :hoges, :id => @hoge, :action => :remove}, :confirm => '画像を削除する?' %> とすれば良い。:controllerは省略しても良いようだ。
rails/url.txt
· 最終更新: 2008/09/06 01:34 by
127.0.0.1
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ