顯示具有 [程式設計]--Ruby 標籤的文章。 顯示所有文章
顯示具有 [程式設計]--Ruby 標籤的文章。 顯示所有文章

2008年9月1日 星期一

will_paginate使用心得

延續之前的文章
http://hdj-berkeley.blogspot.com/2008/08/scaffold.html
如果我們要將大量資料分類成好幾個分頁
就可以用現在的套件will_paginate

首先在model裡增加search的條件

# models/product.rb
def self.search(search, page)
paginate :per_page => 5, :page => page,
:conditions => ['title like ?', "%#{search}%"],
:order => 'title'
end

這裡的title是依照你想要的排序自己選取的
也可以改為id

接著增加controller的條件
將變數傳回給viewer

# products_controller.rb
def index
@products = Product.search(params[:search], params[:page])
end


最後修改products/index.rhtml
讓分頁呈現在網頁上
<%= will_paginate @products %>


這樣就大功告成啦

主要參考:
http://railscasts.com/episodes/51

其它參考網址:
http://iceskysl.1sters.com/?action=show&id=307&page=1
http://iceskysl.1sters.com/?action=show&id=42&page=1
http://www.ruby-lang.org.cn/forums/thread-985-1-1.html
http://www.j-kanban.com/bbs/thread-3690-1-1.html

2008年8月29日 星期五

使用scaffold心得

通常初學者在學習使用ror的時候都會使用scaffold來幫助建構出網頁的框架
但是從rails 2.0開始ror就沒有內建scaffold的套件啦
所以必須另外安裝動態scaffold

ruby script/plugin install http://dev.rubyonrails.com/svn/rails/plugins/scaffolding/


又因為動態scaffold會用到內建分頁,而內建分頁功能也被拿掉成為外掛
所以要安裝pagination

ruby script/plugin install svn://errtheblog.com/svn/plugins/classic_pagination


參考來源:
http://blog.pbg4.org/2007/12/20/upgrade-to-rails-2-0-2

因為靜態scaffold的用法與之前的不一樣了
所以如果要使用scaffold來配置你的網頁
必須按照底下的格式使用
ruby script/generate scaffold ModelName [field:type, field:type]

舉個例子
ruby script/generate scaffold product title:string description:text image_url:string

接著就可以到http://your_host/product/
觀看你新架好的網頁

參考來源:
http://topic.csdn.net/u/20070513/22/5931d7c7-7451-4cc3-9dc5-ca3afbb0cae8.html

此外,有在看"agile web development with Rails 2/e"的人可以參考底下網址:
http://agilewebror2.blogspot.com/2008/08/chapter-6.html
他有探討rails 2.0的一些改變

2008年8月26日 星期二

在vim上開發ruby on rails

要讓vim看的懂ruby
其實只要下載ruby.vim就可以了
不過vim的功能可沒有這麼簡單而己哦
只要配合rails.vim和project.vim
就可以讓你的vim瞬間變成功能超強的IDE
可以參考
http://blog.roodo.com/poga/archives/2667806.html

底下是自己安裝的心得
因為我是在Ubuntu 8.04下使用
所以我主要是將檔案存在我自己的家目錄下

step1 下載 rails.vim

請先下載 rails.vim
下載完解壓縮到~/.vim/底下

step2 下載project

接著下載 project
一樣解壓縮到~/.vim/底下

接著就可以開個ruby的檔試試看啦
詳細的操作方法請到參考下列網頁

參考網址:
http://blog.ntut.idv.tw/2007/12/fbsd-vim-ruby-on-rails.html
http://wiki.rubyonrails.org/rails/pages/HowtoUseVimWithRails
http://www.upulife.com/leo/?p=191
http://lightyror.thegiive.net/2007/06/vim-ruby.html
http://devpoga.wordpress.com/2008/02/05/vim-rails/
http://yueguangyuan.javaeye.com/blog/57263

2008年8月24日 星期日

Ubuntu 8.04灌ruby on rails

參考來源:
https://help.ubuntu.com/community/RubyOnRails

Step1 安裝Apache
首先安裝Apache
在commond line底下輸入
sudo apt-get install ruby-full build-essential apache2 apache2-mpm-prefork apache2-prefork-dev


Step2 安裝RubyGems 1.1.0
目前gems已經出到1.2.0了
之前有人說1.2.0有些許的問題
不過我測試的結果 似乎可以直接使用了
指令如下
wget http://rubyforge.org/frs/download.php/38646/rubygems-1.2.0.tgz
tar xzvf rubygems-1.2.0.tgz
cd rubygems-1.2.0
sudo ruby setup.rb
sudo ln -s /usr/bin/gem1.8 /usr/bin/gem
sudo gem update --system


升級完了之後再灌rails
sudo gem install rails
sudo gem install passenger
sudo passenger-install-apache2-module


Step3 修改apache設定檔

最後在/etc/apache2/httpd.conf
加入
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.0.3/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.0.3
PassengerRuby /usr/bin/ruby1.8



寫了幾個測試程式
一直出現
No such file or directory - /tmp/mysql.sock

這是因為Rails 預設會去找 /tmp/mysql.sock 檔,
不過 Debian 或者 Ubuntu 上的 Mysql 卻不是在/tmp/底下,
通常是在 /var/run/mysqld/mysqld.sock,
所以需要改 database.yml,
如下:
development:
adapter: mysql
socket: /var/run/mysqld/mysqld.sock
database: test_development
username: xyz
password: xxxx
host: localhost

這樣改完就可以看到測試的程式

參考來源:
http://blog.roodo.com/syshen/archives/2143083.html
Related Posts Plugin for WordPress, Blogger...