xiaoqiu369

            BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            7 Posts :: 3 Stories :: 2 Comments :: 0 Trackbacks

          routes:

          routes的命名允許你減少重復(fù)的代碼,通過(guò)分配一個(gè)根據(jù)生成一個(gè)封裝routes rule hash的方法的路徑規(guī)則名稱來(lái)實(shí)現(xiàn),
          你可以定義一個(gè)命名路徑,你可以調(diào)用它在你的routes.rb文件中來(lái)代替connect方法.
          例如:
          map.home '',:controller=>'main',:action=>'start'
          這只是為你做了很少的一點(diǎn)事.首先,它創(chuàng)建一個(gè)名為home_url的方法.因此上面的命名規(guī)則,前期的請(qǐng)求為:
           redirect_to :controller=>'main',:action=>'start' 現(xiàn)在為:
           redirect_to home_url

          因?yàn)?_to方法被重寫(xiě)的方式,在上面的情況,你沒(méi)有將參數(shù)傳遞給命名路徑,你也可以將它傳遞給一個(gè)引用的方法.
           redirect_to :home_url

          注意:將命名路徑做為一個(gè)符號(hào)已經(jīng)取消了,在rails2.0將被刪除.

          這個(gè)也能應(yīng)用于是tests.如果在你的controller里有redirect_to home_url,也可以用 assert_redirect_to home_url.

          *_url方法需要一個(gè)唯一的可選參數(shù).這個(gè)參數(shù)是一個(gè)hash,插入url_for之中,這樣做就是為了當(dāng)用redirect_to,link_to時(shí)命名規(guī)則可以參數(shù)化.

          你如果說(shuō)有這樣的route

           map.user_page 'users/:user',:controller=>'users',:action=>'show'

          你可以這樣做

           link_to @user.username,user_page_url(:user=>@user)

          注釋:這個(gè)僅僅象普通的routes,表單是path_part/:symbol.在上面的例子中,user這部分將只展示在路徑中,并不嚴(yán)格與controller相關(guān)聯(lián).users/只是path生成的部分,
          上面的例子生成<a href="http://localhost/users/7">http://localhost/users/7</a>
          比如:

          :user 是你定義的參數(shù)名稱,如果定義兩個(gè)一模一樣的路徑,很可能得不到你想要的結(jié)果.對(duì)于routes,定義默認(rèn)值.

          當(dāng)用參數(shù)來(lái)命名routes,你必須傳遞參數(shù)給assert中的命名規(guī)則.如果在你的controller中有redirect_to user_page_url(:user=>@user), 你需要有assert_redirected_to user_page_url(:user=>@user).controller中@user的id必須與test中的@user的id匹配.

          除了[route_name]_url方法,你可以用hash_for_[route_name]_url方法,這個(gè)方法包裝hash,沒(méi)有調(diào)用url_for

          所有的reoute將其它的命名規(guī)則用map.connect提供給你.

          posted on 2008-12-16 09:58 bobqiu 閱讀(185) 評(píng)論(0)  編輯  收藏 所屬分類: ruby&rails

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 西平县| 榆林市| 迭部县| 广丰县| 阿拉善盟| 巨鹿县| 岑巩县| 山东| 睢宁县| 广汉市| 巍山| 林西县| 仪征市| 黄山市| 鹰潭市| 衢州市| 寿光市| 上高县| 赤峰市| 遂宁市| 正阳县| 阿瓦提县| 兴城市| 繁峙县| 盈江县| 丰县| 梧州市| 浑源县| 黑水县| 绥滨县| 澄江县| 石河子市| 海盐县| 云林县| 额济纳旗| 枣阳市| 宣恩县| 佛山市| 平塘县| 水富县| 兴宁市|