子在川上曰

            逝者如斯夫不舍晝夜
          隨筆 - 71, 文章 - 0, 評論 - 915, 引用 - 0
          數(shù)據(jù)加載中……

          Rails學習筆記(7)實現(xiàn)分頁,及數(shù)據(jù)庫模型命名限制

          Rails的分頁實在是簡單到了極點。一個文章列表的分頁是這樣實現(xiàn)的。

          先在Action使用paginate方法,如下。
          其中得到的數(shù)據(jù)記錄會在@articles變量里,頁的信息在@article_pages變量里。
          paginate方法的第一參數(shù)是數(shù)據(jù)表名,order_by根據(jù)id排倒序,conditions是查詢條件,per_page是每頁三條記錄。
              @article_pages,@articles = paginate(:articles, 
                                                  :order_by 
          => 'id DESC'
                                                  :conditions 
          => "user_id=" + user_id, 
                                                  :per_page 
          => 3)

          接著在頁面里就可以把@articles變量里的記錄顯示出來,而在*.rhtml文件里顯示分頁的那一欄的代碼為
          <%= pagination_links(@article_pages)%>

          缺點是分頁欄的式樣固定,只列出了頁碼,沒有列出上一頁、下一頁這樣的翻頁的按鈕。不過,研究一下pagination_links方法的源代碼,自己仿造寫一個應該很簡單。


          ---------------------------------

          今天還碰到一個問題,我把表titles改名為modules后,模型文件名為module.rb,其他部份也做了修改。運行后出了錯,出錯信息是Module.class沒有find方法(我在action調(diào)用find方法)。如下:
           NoMethodError in SiteController#index

          undefined method `find
          ' for Module:Class

          RAILS_ROOT: .
          /script/../config/..
          Application Trace 
          | Framework Trace | Full Trace

          #{RAILS_ROOT}
          /app/controllers/site_controller.rb:21:in `header'
          #{RAILS_ROOT}/app/controllers/site_controller.rb:5:in `index'
          -e:4:in `load'
          -e:4


          多方嘗試后發(fā)現(xiàn)數(shù)據(jù)庫模型類不允許起名為module(這應該是rails內(nèi)部的一個類,或者是rails是一個關鍵字),最后的解決辦法是加一個下劃線后綴,然后用set_table_name指定映射的表名。文件名:module_.rb
          class Module_ < ActiveRecord::Base
            set_table_name 
          "modules"
          end


          posted on 2007-05-08 22:09 陳剛 閱讀(1492) 評論(0)  編輯  收藏 所屬分類: Rails&Ruby

          主站蜘蛛池模板: 贵南县| 枣阳市| 阿拉尔市| 济宁市| 永新县| 花莲市| 韶关市| 繁峙县| 永顺县| 九龙坡区| 望江县| 海宁市| 韶关市| 陇西县| 德令哈市| 桦甸市| 苗栗县| 积石山| 开鲁县| 景东| 丹寨县| 永仁县| 伊川县| 岳西县| 同德县| 博爱县| 云和县| 康乐县| 竹山县| 塘沽区| 柘城县| 镇康县| 屏南县| 纳雍县| 墨玉县| 定南县| 义马市| 宜城市| 易门县| 太白县| 洪雅县|