顯示具有 Ruby on Rail 標籤的文章。 顯示所有文章
顯示具有 Ruby on Rail 標籤的文章。 顯示所有文章

2009年3月9日 星期一

Ruby 1.9.1 & Rails 2.3 on Debian 安裝筆記

安裝 ruby 1.9.1
wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p0.tar.gz
tar xvf ruby-1.9.1-p0.tar.gz
cd ruby-1.9.1-p0
./configure

失敗
C compiler cannot create executables


安裝 libc6-dev
apt-get install libc6-dev

重作-安裝 ruby
./configure

失敗
make: command not found

安裝 make
apt-get install make

重作-安裝 ruby
./configure
make
make insatll

ruby -v
ruby 1.9.1p0 (2009-01-30 revision 21907) [i686-linux]

完成安裝 ruby

安裝 rake rack
gem install rake rack

失敗
/usr/local/lib/ruby/1.9.1/rubygems/package.rb:10:in `require': no such file to load -- zlib (LoadError)


安裝 zlib ruby adaptor
cd ruby-1.9.1-p0
cd ext
cd zlib
ruby extconf.rb

失敗
checking for deflateReset() in -lz... no

checking for deflateReset() in -llibz... no
checking for deflateReset() in -lzlib... no
*** extconf.rb failed ***

安裝 zlib1g-dev
apt-get install zlib1g-dev

重作-安裝 zlib ruby adaptor
ruby extconf.rb
make
make install

重作-安裝 rake rack
gem install rake rack

安裝 rails 2.3.1
gem install rails --source http://gems.rubyonrails.org

gem list

*** LOCAL GEMS ***

actionmailer (2.3.1)
actionpack (2.3.1)
activerecord (2.3.1)
activeresource (2.3.1)
activesupport (2.3.1)
rack (0.9.1)
rails (2.3.1)
rake (0.8.4)

完成安裝 rails


建新網站
rails blog -d mysql
cd blog
啟動
./script/server

失敗 /usr/local/lib/ruby/gems/1.9.1/gems/rails-2.3.1/lib/initializer.rb:269:in `rescue in require_frameworks': no such file to load -- openssl (RuntimeError)

安裝 openssl ruby adaptor
cd ruby-1.9.1-p0
cd ext
cd openssl
ruby extconf.rb

失敗
=== OpenSSL for Ruby configurator ===

=== Checking for system dependent stuff... ===
checking for t_open() in -lnsl... no

checking for socket() in -lsocket... no
checking for assert.h... yes

=== Checking for required stuff... ===

checking for openssl/ssl.h... no

=== Checking for required stuff failed. ===

Makefile wasn't created. Fix the errors above.


安裝 libssl-dev
apt-get install libssl-dev

重作-安裝 openssl ruby adaptor
ruby extconf.rb
make
make install

重新啟動網站
./script/server

網頁ok
http://localhost:30000/

About your aplication's environment

Internal Server Error undefined method `each' for # WEBrick/1.3.1 (Ruby/1.9.1/2009-01-30) at localhost:3000

console 顯示
!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql. /!\ FAILSAFE /!\ 2009-03-09 10:27:58 -0700 Status: 500 Internal Server Error no such file to load -- mysql

安裝 mysql ruby adaptor
wget http://tmtm.org/downloads/mysql/ruby/mysql-ruby-2.8.1.tar.gz
tar xvf mysql-ruby-2.8.1.tar.gz
cd mysql-ruby-2.8.1
ruby extconf.rb

失敗 checking for mysql_query() in -lmysqlclient... no *** extconf.rb failed ***

安裝 libmysql++-dev
apt-get install libmysql++-dev

重新安裝 mysql ruby adaptor
ruby extconf.rb
make
make install

重新啟動網站
./script/server

Status: 500 Internal Server Error Access denied for user 'root'@'localhost' (using password: NO)
ok~正常,這是 database.yml 沒設定的關係
改好後重啟網站
./script/server


完工^^;

2009年2月27日 星期五

RoR試開筆記(五)

透過 generator 自動建立出的網頁框架固然很快速,但初學者可能會很難理解整個框架的運作流程。

new 跟 edit 可以使用同一個 form 的樣式,但 rail 要如何得知要產生不同的 form action ?

追一下連結跟control…
new--->create
<%= link_to 'New post', new_post_path %>
會連到 post control 的 new
@post = Post.new
才把 html 顯示出來

edit--->update
<%= link_to 'Edit', edit_post_path(post) %>
會連到 post control 的 edit
@post = Post.find(params[:id])
才把 html 顯示出來

一個是新增的,一個是從資料庫找出來的,因此能判定要用哪種 form action,但是這部份可以去微調嗎? 需要再研究。

2009年2月26日 星期四

RoR試開筆記(四)

ruby script\generate scaffold Post name:string title:string content:text
使用 scaffold 自動 generate 出一個名為 Post 的 model、controler、viewer,包含了一些基本的操作。

rake db:migrate
把剛剛自動生成的 model (想像成 table) 資料表作更新。

修改 \blog\app\views\home\index.html.erb
加入這個 post controler 的連結

<%= link_to "My Blog", posts_path %>

如此就可以到 http://127.0.0.1:3000/posts 進入 post controler 了
或到透過 home 首頁的 post 連結進入。

RoR試開筆記(三)

config/routes.rb
編輯「文件路由檔」

適當位置加入這行…
map.root :controller => "home"

刪除預設的首頁
\blog\public\index.html

如此 http://127.0.0.1:3000/ 就會指到 home controler (預設viewer:index.html.erb)

2009年2月25日 星期三

RoR試開筆記(二)

rails blog -d mysql
建立一個名為 blog 的網站app,使用 mysql

cd blog
進去 gen 好的網站

config/database.yml
編輯資料庫設定

rake db:create
自動建立資料庫

ruby script/generate controller home index
建立一個包含 viewer:index 的 controller:home

ruby script/server
啟動 server

http://localhost:3000/home/index
網頁

參考:http://guides.rubyonrails.org/getting_started_with_rails.html

2009年2月23日 星期一

RoR試開筆記(一)

Windows 下安裝 ROR
到…
http://rubyinstaller.rubyforge.org/
下載…
rubyinstaller ruby186-27_rc2.exe
安裝
套件管理程式 gem 要勾選隨同安裝

裝好後下指令安裝 mysql adaptor,才能用 mysql 作為資料庫…
gem install mysql [--no-ri --no-rdoc]

裝好後下指令…
gem install rails [--no-ri --no-rdoc]

開新專案(使用mysql,需先另外安裝好)…
rails HelloWorld -d myaql

啟動 server…
cd HelloWorld
ruby script\server


*要使用 mysql 也要將 libmysql.dll 拷貝到 ruby/bin 目錄下,才不會有錯誤訊息出現。
*mysql需支援 InnoDB,要修改 my.ini 重啟 MYSQL

VirtualBox 空間減肥

sdelete64 -z c: VBoxManage  modifymedium  disk  "/Users/fellow/VirtualBox VMs/Win10/Win10.vdi"  --compact *.vdi 路徑可以在 VirtualBox 儲...