• yam天空
  • 天空部落
  • 新聞
  • 登入 註冊 網誌隨便逛
  • 加入天空部落
  • 蕃薯寶寶聖誕新家登場

網誌 相簿 影音 PK吧! Honda嬉遊趣
即時新聞 影音新聞 新聞專輯 政治新聞 財經新聞 娛樂新聞 運動新聞 兩岸新聞 科技新聞
管理介面 發表網誌 發表日記 上傳相片 上傳影音 管理留言
推薦這個部落格: 76

※程式學習中※

能笑的時候就別哭,想哭的時候,別捨不得眼淚!

☆胡言亂語、雜七雜八的東西☆ | ☆內有惡犬,沒事別亂點☆ | ☆爛部落格!吐槽點這就對了☆
Firefox 加速 | 主頁 | 兩個 DB 相關紀錄
October 9, 2009
Ruby on Rails 隨手筆記以文找文
carl44 在天空部落發表於17:29:45 | ㊣ROR
鼓勵此網誌:0 


很亂的紀錄 ... 看到什麼就隨手記下來 ...


基本架設

1. 下載並安裝 WLMP。(安裝程式是匈牙利文,一直按「下一步」)

2. 安裝完成後,選「否」,之後重新開機。

3. 重開機後會出現是否啟動 Lighttpd 及 MySQL,選「是」。

4. 進入 http://127.0.0.1,選左側的 PHPMYADMIN,登入的帳號為 root 密碼不用填。

5. 選擇「權限」,更改 127.0.0.1 以及 localhost 以 root 登入的密碼。

6. 下載並安裝 Ruby (One-Click Installer)。

7. 安裝完成後,開啟「命令提示字元」,輸入 ruby -v 可以看到目前版本。

8. 安裝 Rails 框架,這部分比較有問題,在 ruby 安裝完之後舊版本的 gem
在 win 上會有問題,因此要先把 gem 升級成最新的。

9. 輸入 gem update --system 更新 gem 到最新版。

10. 完成後,安裝 Rails 框架,輸入 gem install rails

11. 完成後,輸入 rails -v 可以看到升級成最新的版本了。

12. 安裝 Mongrel 套件,輸入 gem install mongrel

13. 安裝 Mongrel_Service 套件,輸入 gem install mongrel_service

14. 設定 Lighttpd 伺服器。編輯 C:\WLMP\LightTPD\conf\lighttpd-inc.conf,
將「mod_accesslog、mod_alias、mod_auth、mod_proxy、mod_redirect、mod_rewrite」
移除註解(#)



快速開發一個專案(一)

1. 建立專案資料夾 rails -d mysql C:\ror\www  (-d 是使用什麼 database,最後面是專案目錄),
c:\ror\www\app 中包含了 controllers, helpers, models, views

2. 把 mongrel service 安裝成 windows 服務。(此步驟可以用 netbeans or 每次自己下指令)
mongrel_rails service::install -N Mongrel -c C:\ror\www -p 81 -e production
-N 服務名稱,-c 專案目錄,-p 使用的 port,
-e 使用環境有 test (測試)、development (開發)、production (產品)

3. 設定完成後,到我的電腦按滑鼠右鍵 -> 服務 -> 裡面可以找到剛剛註冊的服務,可設定成自動。

4. 如果不用上面的方式啟動的話,可以到專案目錄下輸入
mongrel_rails start -e production -p 81 也一樣可以啟動。

5. 開啟瀏覽器輸入 http://localhost:81/ 出現 Welcome aboard 的視窗表示啟動成功。

6. 設定資料庫連線,編輯 C:\ror\www\config\database.yml,
有剛剛提到的三種環境 test, development, production,
這邊我們只啟動 production 就設定 production: 的部分,
要注意屬性+冒號後面要空一格才輸入值,ex. password: 空一格 12345。

7. 建立 mysql 的 new schema。要跟上面設定的一樣。

8. 建立 controller,在專案目錄下,輸入
ruby script/generate controller helloworld index,rails 會自動建立相關檔案。

9. 編輯 c:\ror\www\app\controllers\helloworld_controller.rb
def index
  render :text => "歡迎光臨ROR"
end

10. 重啟 mongrel,用瀏覽器開啟 http://localhost:81/helloworld

11. 這裡要注意的是 helloworld_controller.rb 跟 index.html.erb 都要另存成 utf-8 編碼。
否則正體中文會有亂碼問題。

12. 建立 controller say,輸入 ruby script/generate controller Say。

13. 編輯 c:\ror\www\app\controllers\say_controller.rb
class SayController < ApplicationController
  def hello // 定義 hello 方法
    @time = Time.new // 取得目前時間,存在實體變數 @time 中
  end

  def goodbye // 定義 goodbye 方法
  end
end

14.
http://xx.xx.xx.xx/say/hello
say =>    class SayController < ApplicationController
hello =>   def hello
                      @time = Time.now
                  end
                end

15. 編輯 views,在 C:\ror\www\app\views\say 目錄下新增剛剛兩個方法的頁面
hello.rhtml, goodbye.rhtml (注意編碼)

16. hello.rhtml
<html>
  <head>
  <title>Hello Rails!</title>
  </head>
  <body>
    <H1>現在時間 <%= @time%></H1>
    <p>
      Time to say <%= link_to "再見", :action=> "goodbye" %>
    </p>
  </body>
</html>

17. goodbye.rhtml
<html>
  <head>
    <title>再見</title>
  </head>
  <body>
    <p>
      nice to meet you ...
    </p>
    <p>
      <%= link_to "Hello頁面", :action => "hello" %>
    </p>
  </body>
</html>





1. 一對一關連:cards(id, name_id ...), name(id, name ...)
class Card < ActiveRecord::Base
  belongs_to :name
end

class Name < ActiveRecord::Base
  has_one :cards
end

2. 一對多關連:line_items(id, order_id ...), orders(id, name ...)
class LineItem < ActiveRecord::Base
  belongs_to :order
end

class Order < ActiveRecord::Base
  has_many :line_items
end

3. 多對多關連:books(id, name ...), books_users(book_id, user_id), users(id, name ...)
class Book < ActiveRecord::Base
  has_and_belongs_to_many :users
end

class User < ActiveRecord::Base
  has_and_belongs_to_many :books
end


分頁

http://wiki.rubyonrails.org/howtos/pagination


分頁

如果要在 index 分頁
1. 修改 controller - people_controller.rb
def index
  @people= Person.paginate :per_page => 2,
                                                  :page => params[:page],
                                                  :order => 'name asc'
end

2. 修改 view - index.html.erb
<h1>Listing people</h1>
<ol>
<% @people.each do |person| %>
    <li><%=h person.country%>
          | <%=h person.city%>
          | <%=h person.name%></li>
<% end %>
</ol>
<br />
<%= will_paginate @person, {:prev_label => '上一頁', :next_label => '下一頁'} %>

3.


Reference from
Ruby on Rails, 松崗, 歐展嘉。
Upgrade to Rails 2.0.2
JavaWorld@TW Java論壇
Pagination with WillPaginate

留言 (0) | 引用 (0) | 人氣 () | 轉寄
Firefox 加速 | 主頁 | 兩個 DB 相關紀錄
引用 (你可以針對此文寫一篇屬於自己的blog/想法,並給作者一個通告)
引用
留言 (0筆)
發表你的留言 (字數限制 最多 2000 個中文字)
私密留言: 是 否
Name:





是 否
內容:
系統公告
我是誰
個人圖檔
ID:carl44
暱稱:黃小蛙
生日:1984/04/4
地區:臺北市
  • 訂閱 |
    • 我要訂閱此部落格的
    • 日記
    • 網誌
    • 相簿
  • 好友 |
    • 好友功能
    • 觀看好友列表
    • 觀看人緣列表
  • 人氣 |
  • 簡介 

卡豬
文章分類
  • ☆電腦資訊的☆ (12)
    • ㊣Mac (4)
    • ㊣Win (29)
    • ㊣PHP (5)
    • ㊣JSP (6)
    • ㊣ROR (1)
    • ㊣Java (5)
    • ㊣VoIP (9)
    • ㊣Game (2)
    • ㊣Linux (15)
    • ㊣Database (5)
    • ㊣JavaScript (4)
    • ㊣其他 (8)
  • ☆電腦以外的☆ (4)
    • ※E770 (8)
    • ※Lyrics (31)
    • ※Excerpts (9)
    • ※Other (19)
  • ☆日記☆ (4)
    • ♂Diary (195)
    • ♂Story (0)
    • ♂Field (5)
    • ♂Memo (0)
  • Temp (0)
標籤雲
書籤
  • Rinko
  • 玲
  • 如
  • 娟
  • 姊
  • 豆豆
  • Ken
  • 翰翰
  • -
  • 阿年
  • 安全
  • 小忠
  • -
  • mayla
  • 小木
  • 小麥
  • 嘎上
  • 企鵝
  • 小武
  • -
  • 1+
  • 阿宗
  • 家福
  • 嘉文
  • 文彥
  • 阿敦
  • -
  • 導遊
  • 重灌狂人
  • Engadget 癮科技
搜尋欄位
搜尋:
RSS 訂閱
RSS2
ATOM
贊助商
其它資訊
本部落所刊登之內容,皆由作者個人所提供,不代表 yam 天空 本身立場。
POWERED BY
POWERED BY 天空部落
會員登入│免費註冊