เปลี่ยนเวอร์ชั่น Rails แล้วมีปัญหาครับ

  • warning: realpath() [function.realpath]: SAFE MODE Restriction in effect. The script whose uid is 1005 is not allowed to access /tmp owned by uid 0 in /var/www/sites/sugree/codenone.com/subdomains/www/html/includes/file.inc on line 190.
  • warning: realpath() [function.realpath]: SAFE MODE Restriction in effect. The script whose uid is 1005 is not allowed to access /tmp owned by uid 0 in /var/www/sites/sugree/codenone.com/subdomains/www/html/includes/file.inc on line 190.

จากปกติที่ใช้คึอ rails 2.0.2

เลยจะลองลดเวอร์ชั่นลง ซึ่งผมใช้คำสั่ง $sudo gem install rails -v1.1.6

ซึ่งติดตั้งสำเร็จ จากนั้นผมก็ไปแก้ไฟล์ environment.rb ที่อยู่ใน /config

ก็เปลี่ยนจาก ‘rails 2.0.2’ เป็น ‘rails 1.1.6’

จากนั้นผมจะลองทดสอบ ด้วยคำสั่ง $ruby script/server ซึ่งรัน webrick(webserve) ไม่ได้ครับ แต่ถ้าผมไปเปลี่ยนมาเป็น rails 2.0.2 เหมือนเดิม คำสั่ง $ruby script/serve ใช้ได้ครับ

ผมเลยอยากถามพี่ๆ ครับ ว่าถ้าเราจะเปลี่ยนเวอร์ชั่น rails เราต้องทำอย่างไงบ้างครับ

ตัด error มาลงให้ดูหน่อยครับ

เดาว่าบนเครื่องติดตั้งไว้ทั้ง rails 2.0.x และ 1.1.x
ทายสิว่า ตอนเราสั่ง

rails projectName

file และ directory ที่มันสร้างให้ จะใช้โครงสร้างอิงตาม rails version 2 หรือ version 1
ลอง prove ง่ายๆดูด้วยคำสั่ง

rails --version

จะเห็นว่ามัน show version 2 ออกมา
ซึ่งหมายความว่า project file ที่มัน generate ให้เรา มันเป็น version 2
ด้วยเลข version ที่มากกว่า ย่อมไม่สามารถนำไป run ใน version ต่ำกว่าได้


ที่นี่ถ้าเราต้องการให้มัน gen project ใน version ที่เราต้องการหล่ะ
มันทำได้ไหม
ลองสั่ง vi /usr/bin/rails ดู

require 'rubygems'
 
version = ">= 0"
 
if ARGV.first =~ /^_(.*)_$/ and Gem::Version.correct? $1 then
  version = $1
  ARGV.shift
end
 
gem 'rails', version
load 'rails'

จะเห็นตัวแปรที่ชื่อ version อยู่, default มันคือ '>= 0'
ซึ่งหมายความว่า version อะไรก็ได้
ซึ่งก็เดาได้อีกว่ากรณีมีหลาย version มันก็คงเลือก version ใหม่สุดให้


ทีนี้เป็นการบ้าน ลองอ่านจาก code ดู
แล้วไปเดาว่า ควรจะ run rails ด้วย parameter อะไร
จึงจะได้ project file ใน version ที่ต้องการ

apirak's picture

สุดยอดเลยครับ พี่pphetra จุดประกายผมมากทีเดียว ตั้งแต่กระทู้เรื่องการดู log ของ active record เลยครับ

^L^ เคยแต่เพื่มเวอร์ชั่นครับ อ่านแล้วก็ได้เพื่มเติมอีก ขอบคุณ pphetra ม๊กมากครับ

เจ๋ง ๆ

ย้าย Codenone

ประกาศย้าย Codenone ไปใช้ Forum ของ Blognone แทนครับ ตามไปตั้งกระทู้ต่อได้ที่ Codenone Forum (รายละเอียดอ่านจากกระทู้ ย้าย Codenone ไปรวมกับ Blognone)

กระทู้เก่าๆ จะย้ายตามไปในภายหลัง ตอนนี้ปิดการโพสต์กระทู้ไว้ เหลือไว้เฉพาะอ้างอิงเท่านั้น