子在川上曰

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

          Rails學習筆記(4)數據庫配置及頁面讀取

          開始在MySQL中創建數據庫,分別用于:開發、測試、產品

          create database chensite_development;
          create database chensite_test;
          create database chensite_production;

          在開發庫中建表和插入數據:
          use chensite_development;

          drop table 
          if exists titles;
          create table titles (
           id             
          int           not null auto_increment,
           name           varchar(
          100)  not null,
           url            varchar(
          200)  default NULL,
           parent_id      
          int           default 0,
           expanded       tinyint(
          1)    default 0,
           level          tinyint(
          1)    default 0,
           primary key (id)
          )ENGINE
          =InnoDB DEFAULT CHARSET=utf8;

          LOCK TABLES titles WRITE;
          INSERT INTO titles VALUES(
          1,'AAAAAAAAA','http:\\www.AAAAAAAAA.com.cn',0,0,1);
          INSERT INTO titles VALUES(
          2,'BBBBBBBBB','http:\\www.BBBBBBBBB.com.cn',0,0,1);
          INSERT INTO titles VALUES(
          3,'CCCCCCCCC','http:\\www.CCCCCCCCC.com.cn',0,0,1);
          INSERT INTO titles VALUES(
          4,'關于','http:\\www.DDDDDDDDD.com.cn',0,0,1);

          INSERT INTO titles VALUES(
          5,'EEEEEEEEE','http:\\www.EEEEEEEEE.com.cn',2,0,2);
          INSERT INTO titles VALUES(
          6,'FFFFFFFFF','http:\\www.FFFFFFFFF.com.cn',2,0,2);
          INSERT INTO titles VALUES(
          7,'GGGGGGGGG','http:\\www.GGGGGGGGG.com.cn',2,0,2);
          INSERT INTO titles VALUES(
          8,'HHHHHHHHH','http:\\www.HHHHHHHHH.com.cn',2,0,2);


          UNLOCK TABLES;

          配置數據庫連接:  config\database.yml,主要是給連接三個數據庫的root用戶輸入密碼,在輸入密碼時要注意:"password:"和密碼"123456"之間要有一個空格,密碼之后不要有空格,否則無法啟動WEB服務。

          # MySQL (default setup).  Versions 4.1 and 5.0 are recommended.
          #
          # Install the MySQL driver:
          #   gem install mysql
          # On MacOS X:
          #   gem install mysql 
          -- --include=/usr/local/lib
          # On Windows:
          #   gem install mysql
          #       Choose the win32 build.
          #       Install MySQL and put its 
          /bin directory on your path.
          #
          # And be sure to use 
          new-style password hashing:
          #   http:
          //dev.mysql.com/doc/refman/5.0/en/old-client.html
          development:
            adapter: mysql
            database: chensite_development
            username: root
            password: 
          123456
            host: localhost

          # Warning: The database defined as 
          'test' will be erased and
          # re
          -generated from your development database when you run 'rake'.
          # Do not set 
          this db to the same as development or production.
          test:
            adapter: mysql
            database: chensite_test
            username: root
            password: 
          123456
            host: localhost

          production:
            adapter: mysql
            database: chensite_production
            username: root
            password: 
          123456
            host: localhost

          接下來創建一個能夠顯示數據庫數據的頁面。Rails是MVC模式的編程方式。
          首先創建數據模型:app\models\title.rb
          class Title < ActiveRecord::Base
          end
          • 數據庫titles(小寫復數),文件名title.rb(小寫單數),類名Title(大寫單數)
          • 大寫方式--單詞第一個字母為大寫。小寫方式--每個單詞用下劃線分開。
          • 模型類中不必定義屬性,它會自動以數據庫字段為屬性。
          • set_table_name "table1" 定義對應的表
          • set_primary_key "name" 改默認的ID主鍵為name,不過以后name字段就用成id,如:o.id="chengang"

          創建視圖:views\homepage\index.rhtml,顯示出title表所有記錄的id和name值

          <html>
          <body>
              
          <h1>ChenGang's Site</h1>

          <% for title in @titles %>

              
          <%= title.id %>__<%= title.name %><br/>

          <% end %>
          </body>
          </html>

          視圖中用到的@titles變量來自于我們自己創建的如下控制器: app\controllers\homepage_controller.rb。Rails中控制器中的變量可以在視圖中使用(這是否會產生變量污染的問題呢,還待以后再體驗)

          class HomepageController < ApplicationController
            def index
              @titles 
          = Title.find(:all)
            end
          end
          • Homepage和視圖的目錄名homepage相關
          • index方法和視圖的文件名index.rhtml相關
          • 用index可以省略訪問地址中的action(action默認為index action)

          最后啟動Web服務器后訪問:http://localhost:3000/homepage 

           

          posted on 2007-04-09 14:36 陳剛 閱讀(2023) 評論(0)  編輯  收藏 所屬分類: Rails&Ruby

          主站蜘蛛池模板: 揭阳市| 海林市| 双城市| 双流县| 通海县| 闵行区| 山阳县| 昌黎县| 台前县| 涡阳县| 抚州市| 红原县| 赫章县| 始兴县| 湖南省| 丰都县| 宣威市| 浮梁县| 陈巴尔虎旗| 东莞市| 西林县| 濮阳县| 南和县| 陆丰市| 土默特右旗| 哈尔滨市| 和林格尔县| 社会| 枣阳市| 如东县| 遂川县| 略阳县| 肥东县| 义马市| 银川市| 邢台县| 公主岭市| 新泰市| 赤壁市| 浦北县| 灵山县|