Ruby on Rails學習筆記(四 用scaffold實現持久化類)


1.創建首頁

1.新增一個控制器
`rails generate controller home index`
執行之後,在項目的app\views\home目錄下就多了一個index.html.erb的文件
2.設置主頁 
    1.編輯config\routes.rb添加以下代碼
        root :to => "home#index"
    2.在終端中
        $ bundle install
        $ rails s
    此時發現主頁變了

2.配置數據庫

編輯config\database.yml,修改default和development,其它部分不要動
default: &default
  adapter: mysql2
  encoding: utf8
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: root
  password: 159753
  socket: /var/run/mysqld/mysqld.sock

development:
  <<: *default
  database: helloworld_development

3.生成器的使用

1.使用scaffold(漢譯:腳手架,斷頭臺)代碼生成器創建user類
$ rails generate scaffold user name:text password:text --force
因爲前面測試的時候已經創建過user了,因此加上了一個force參數,表示修改這個類
2.創建項目所需數據庫 
$ rake db:create
3.持久化類
$ rake db:migrate
這個時候打開mysql 
mysql -u root -p
use database helloworld_development
desc users
執行這一步後會自動在數據庫中生成users表,注意了,我們創建的類是user,而這裏自動生成的表卻是users,是它的負數形式,是不是特別人性化?要麼說ruby是最優雅的語言呢///果然名不虛傳呀。。。
我們會發現users表的結構是這樣的

mysql> desc users;
+------------+------------+------+-----+---------+----------------+
| Field      | Type       | Null | Key | Default | Extra          |
+------------+------------+------+-----+---------+----------------+
| id         | bigint(20) | NO   | PRI | NULL    | auto_increment |
| name       | text       | YES  |     | NULL    |                |
| password   | text       | YES  |     | NULL    |                |
| created_at | datetime   | NO   |     | NULL    |                |
| updated_at | datetime   | NO   |     | NULL    |                |
+------------+------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)
我們發現除了我們自己添加的屬性name,password之外,又多了三個屬性:id(primaryKey),created_at,updated_at

4.將users/index設置爲主頁
編輯config--->routes.rb

將users/index設置爲主頁的代碼爲添加
root :to => "users#index"
5.運行項目
$ bundle install
$ rails s


誇我誇我!!!


第一個hellworld項目總算是搭完了,感覺自己這幾天神擋殺神佛擋殺佛。。。誇我誇我

這是我拿來練手的項目,github地址爲
https://github.com/houchuanhao/helloworld.git

這個項目會作成一個論壇,歡迎fork~

Rails Migration Data Types – MySql – Postgresql – SQLite
Rails       mysql       postgresql  sqlite
:binary     blob        bytea       blob
:boolean    tinyint(1)  boolean     boolean
:date       date        date        date
:datetime   datetime    timestamp   datetime
:decimal    decimal     decimal     decimal
:float      float       float       float
:integer    int(11)     integer     integer
:string     varchar(255)    *       varchar(255)
:text       text        text        text
:time       time        time        datetime
:timestamp  datetime    timestamp   datetime
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章