分享內容(
不加port的參數,預設是以3000的port 來開啟,若是遠端操作,就別忘了開iptables的port出來才可連上。
然後 http://IP:3000/articles/ 就可看到畫面,而可以操作CRUD等五個動作。
最簡陋的簡單應用
這個scaffold的動作,產生了最粗略的資料庫操作界面,假設自己做靠自己增減的公佈欄、或只有自己post文章就好的話,就可以這個為基礎,,再自行修改一下呈獻畫面的方式;至於公開在網路上,當然就要做一個,沒有新增、刪徐、編輯、更新界面的同樣東西。
每個RoR的Project是由MVC(Model, View, Control)所架構,Model,上述的例子就是article,scaffold產生其model在 app/model 之中的article.rb,,而後面直接下了 欄位:屬性,也把這個model 名稱加上 s 為資料庫的 table,並把欄位屬性產生在 db/migrate 之中;同時把操作資料庫的CRUD等五個動作,寫到 app/controlers 之中,也把如何呈獻的html碼的template寫到 app/views/articles 裡面,相對到Controller中的動作。
這樣就產生了一個 blog 的controller以及 index 、 show 兩個動作及相對應的view出來,但內容都是空的,這時只要把 app/controllers/ 的 articles_controller.rb 中的 index 及 show 的內迥,貼到 blog_controller.rb 之中,再把 app/views/articles 的index.html.rb 及 show.html.rb 複製到 app/views/blog 之中,並且將有編輯、刪除、新增等連結給刪除掉,將index.html.rb 有關 show 的語法改方:
這樣就不會跑到 articles 的 show 的動作中。而app/views/blog/show.html.rb中更改一下 Back 的連結為:
就可回到 blog 的 controller 之中的 index 了。
若要在不同的動作上,都會有一致的template呈獻的話,可在 app/views/layouts 之中編輯一個 blog.html.erb,可參照同目錄之中的articles.html.erb的寫法。
讓網頁的根目錄出現指定的畫面
所以當告訴人只有可view而已的網址則是: http://IP:3000/blog/ 若希望能把那個 blog 的路徑去掉直接 http://IP:3000 就可以看得到的話,修改 conf/routes.rb
在 map.resources :articles 的這一行下面加入:
然後,一定要把 public 目錄中的 index.html 給移掉,才不會被哪一頁給擋住,基本上thin可以不用啟動的情況下,http://IP:3000/ 就可以看到文章的列表了。
9人
為何用SQLite
在rails 2.x 版後,預設操作的資料庫是 SQLite3,而Rails 1.x版便是大家較常用的MySQL為預設,所以只要執行 rails test1 不加參數就會以預設的資料庫來使用,若用 rails test1 -d mysql 就會採用所指定的資料庫為對象。前提是要先裝好ruby 去操作該資料庫的library。
在RoR下做初期的開發時期,較常用SQLite來操作,是因操作簡單,在量少而規模還不是很大的資料量情況下,是比MySQL來得快速些;當要正式上線時,才把資料庫換為MySQL,才能有效處理大規模的資料量。
基本上,SQLite在資料庫的基本操作及表格間的關聯功能上,在剛發展測試是足夠的,而且處理中文上,至少在UTF-8的環境下沒什麼問題。
第立第一個測試計畫
這一系列都在自己的家目錄 /home/ironman 來建立範例:
#建立一個Project rails test1 #建立一個可寫「標題」、「內容」的雛型: # 一定要進入該Project目錄,再作其他動作才有效 cd test1 # 建立一個 article 的 model 為指定其欄位 ./script/generate scaffold article title:string body:text # 將上述所產生的資料模型,寫到資料庫裡面 rake db:migrate #啟動web server thin start -d # 若有裝 mongrel 執行 # mongrel_rails start -d
不加port的參數,預設是以3000的port 來開啟,若是遠端操作,就別忘了開iptables的port出來才可連上。
然後 http://IP:3000/articles/ 就可看到畫面,而可以操作CRUD等五個動作。
最簡陋的簡單應用
這個scaffold的動作,產生了最粗略的資料庫操作界面,假設自己做靠自己增減的公佈欄、或只有自己post文章就好的話,就可以這個為基礎,,再自行修改一下呈獻畫面的方式;至於公開在網路上,當然就要做一個,沒有新增、刪徐、編輯、更新界面的同樣東西。
每個RoR的Project是由MVC(Model, View, Control)所架構,Model,上述的例子就是article,scaffold產生其model在 app/model 之中的article.rb,,而後面直接下了 欄位:屬性,也把這個model 名稱加上 s 為資料庫的 table,並把欄位屬性產生在 db/migrate 之中;同時把操作資料庫的CRUD等五個動作,寫到 app/controlers 之中,也把如何呈獻的html碼的template寫到 app/views/articles 裡面,相對到Controller中的動作。
./script/generate controller blog index show
這樣就產生了一個 blog 的controller以及 index 、 show 兩個動作及相對應的view出來,但內容都是空的,這時只要把 app/controllers/ 的 articles_controller.rb 中的 index 及 show 的內迥,貼到 blog_controller.rb 之中,再把 app/views/articles 的index.html.rb 及 show.html.rb 複製到 app/views/blog 之中,並且將有編輯、刪除、新增等連結給刪除掉,將index.html.rb 有關 show 的語法改方:
<td><%= link_to 'Show', :action => 'show', :id => article.id %></td>
這樣就不會跑到 articles 的 show 的動作中。而app/views/blog/show.html.rb中更改一下 Back 的連結為:
<%= link_to 'Back', :action => 'index' %>
就可回到 blog 的 controller 之中的 index 了。
若要在不同的動作上,都會有一致的template呈獻的話,可在 app/views/layouts 之中編輯一個 blog.html.erb,可參照同目錄之中的articles.html.erb的寫法。
讓網頁的根目錄出現指定的畫面
所以當告訴人只有可view而已的網址則是: http://IP:3000/blog/ 若希望能把那個 blog 的路徑去掉直接 http://IP:3000 就可以看得到的話,修改 conf/routes.rb
在 map.resources :articles 的這一行下面加入:
map.root :controller => "blog", :action => "index"
然後,一定要把 public 目錄中的 index.html 給移掉,才不會被哪一頁給擋住,基本上thin可以不用啟動的情況下,http://IP:3000/ 就可以看到文章的列表了。
▼ ADVERTISEMENT ▼
-
‧
-
‧
-
‧
相關問答
- 資料庫系統規劃問題?
- 一億筆的資料庫搜尋該怎麼規劃
- 資料庫效能調校實戰經驗大募集,你有什麼精彩的調校經驗嗎?
- CakePHP讓資料庫讀寫分離的設定
- VB2005 CrystalReport連資料庫動態資料
- Microsoft年度大事 TechEd 2008 課程主題 -- [DAT]資料庫開發與管理
- 用web程式,從sqlserver裡select資料的動作,能夠指定終止嗎??
- [RoR] 簡單完成分頁功能
- 是否有碰過在SQL Server 的資料庫裡面發現不明的DM_99 資料表
- AutoCAD 或 OrCAD 可以利用任何座標資料庫或座標資料輸入來產生圖檔嗎?
- 使用JDE的企業中,有哪些企業是使用SQL 資料庫?
- 開發 Acess 程式開發庫存管理, 最容易進入軟體那一套定程式
- Microsoft Visual Studio 2005 C++ 要如何撰寫於資料庫應用程式開發
- 在Ruby上,可以用近似 jQuery語法來解析DOM的好工具 -Hpricot
- 線上詐騙的目標資料
- extjs: 使用JsonStore & .Net Web Service讀取資料庫
- 請問windows應用程式與web應用程式,有何不同(設計上,介面上,操作上,資料庫等等)?
- .Net DataTable 大量資料壓縮加密實測
- MYSQL 亂碼問題
- Oracle Database 10g Express Edition 安裝使用









