Rails 3.1 error – Could not find a JavaScript runtime?

最近不小心升到 Rails 3.1 因此在建立新專案時又TMD爛掉了!?

有沒有Ruby on Rails 每次升級就爛掉的八卦?!ヽ(`Д´#)ノ ムキー!! (冒青筋

[cc lang=”bash”]
$xyz rails s
/home/XXX/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/gems/1.8/gems/execjs-1.2.9/lib/execjs/runtimes.rb:47:in `autodetect’: Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
[/cc]

解決方法,到Gemfile新增兩行:
[cc lang=”ruby”]
gem ‘execjs’
gem ‘therubyracer’
[/cc]

然後bundle install

總算暫時平息 〜( `д´)b オッケー!

Rails 另外命名資料表名稱的方法

若要在 Ruby on Rails 在己存在的資料庫上重新建立 UI ,並且原資料結構與資料都必需保留。但MySQL對於資料欄位名稱的大小寫非常的敏感。

因此若在Rails上命名model之後:

rails即報錯,資訊如下:

[cc lang=”ruby”]
irb(main):006:0> Tickets.first
Mysql2::Error: Table ‘rt3.tickets’ doesn’t exist: SHOW FIELDS FROM `tickets`
ActiveRecord::StatementInvalid: Mysql2::Error: Table ‘rt3.tickets’ doesn’t exist: SHOW FIELDS FROM `tickets`
[/cc]

Rails指出的錯誤是因為 tickets 字首變小寫了,所以MySQL就找不到資料表。

那麼,若以後要改寫UI不就很沒有彈性?

是的,我找不到那個方法前是非常的躁鬱的 ★゜+.ヽ(*。>Д<)o゜+.゜☆ 好佳在有前輩可以指引光明,因此前輩指出了一個方法,那就是: [cc lang="ruby"]set_table_name[/cc] 然後在這個地方放進這個方法: [cc lang="ruby"] class Tickets < ActiveRecord::Base set_table_name "Tickets" end [/cc] 結果: [cc lang="ruby"] Loading development environment (Rails 3.1.0) irb(main):001:0> Tickets.count
(2.8ms) SELECT COUNT(*) FROM `Tickets`
=> 8035
[/cc]

Rails的世界因此變的美好了 〜♡ヽ(●´ε`●)ノ♡

相關連結:
http://apidock.com/rails/ActiveRecord/Base/set_table_name/class

http://apidock.com/rails/Module/alias_attribute

mysqldump 指令備忘

由於時常在用phpmyadmin來管理資料庫,所以指令很少在使用,但在純 command line 還是不得不下指令來管理 mysql 這才是系統管理的最根本。

指定某個資料庫全部 dump 出來:
[cc lang=”bash”]mysqldump -h 192.168.XX.XX -u username -p database > Data.sql[/cc]

如果mysql不在localhost上,可以用 -h 指定host name 或是遠端ip 。

指定某資料庫又指定某table :
[cc lang=”bash”]mysqldump -h 192.168.XX.XX -u username -p database table1 table2 > ADumpingData.sql[/cc]

把資料倒回去:
[cc lang=”bash”]mysql -u username -p dbname < Data.sql[/cc]

「做人的事」或是「做事的人」

今天看到這一則快樂工作人雜誌的一篇文章『你是「做人的事」還是「做事的人」?』這篇文章很值得分享給大家。

文中提到一個大標題,我覺的很重要,那就是:

「事」沒有回饋,「人」才有感情

因為只有做「事」你會只當做例行公事一樣,做完就沒事,會覺的很沒有成就感。

如果你向人做對了事,對方( 人 )就會對你回饋。做起事來會更加把勁。

待在科技業最大失處就是工程師因時常專注於技術以及電腦,似乎忘記跟人相處的本能,交女朋友的事不說,光是要跟周遭的人相處也有點困難。因為開發技術是每天在做的「例行公事」,卻忘了這個技術並非地球上的每個人都了解。

因此時常做出只有自己才會懂的東西。

例如要求不懂 HTML 的人必需強迫去用 HTML 才能做的事。那麼只會用 Word 打文件的人跟本就是天方夜譚。

所以若沒有適時的在人群中打滾一番,所謂社會之中的「人」、「情」、「事」、「故」都會失去平衡的。更何況「人」與「情」並不是大家以生俱來的本能,靠後天的人生體驗才會有成熟的處事態度。

其實資訊業最盼望的是來自各方的回饋,無論回饋來的結果是好話或是壞話,適時的回應「善意」跟出發點都是對於「做人的事」都是很重要的。

如果您還不懂以上的道理,那就 Follow 你最在乎的「她」,她有什麼困難你就去用你的聰明才智去解決,不要覺的修電腦是宅男最後的一根稻草。往往這樣子的一個機會,她會了解你的優點的。

做對的事.比把事情做對重要!

所以不要只會 Coding 就好,會做人更重要!

在 VirtualBox 體驗 Windows 8

微軟英雄的下一代作業系統 windows 8 已經在前幾天開放下載試用,試玩的結果感覺還不賴。

聽說開機時間不到十秒鐘,開機載入系統的效率整個變的非強大。但還是要跳過BIOS 的POST 才開始算唷!

依個人判斷,所謂開機速度加快,應該是在過去所運用到的「電源管理」的相關技術加強化。過去XP時代關機有若干選項,除了關閉電源之外,尚有「待命」、「休眠」。

待命是讓電腦進入低電源模式,記憶體仍處於刷新狀態,硬碟馬達關閉,螢幕關閉,風扇關閉,讓吃電比率較重的周邊硬體都關閉。如同筆記型電腦闔上螢幕之後只有電源燈緩慢的閃爍。

休眠是將記憶體內部的資料全部原封不動的寫入硬碟的另一個分割區塊,以存放目前系統活動狀態,然後就像關閉電源一樣。直到下次開啟電源,完成BIOS的POST之後,直接進入桌面,不必再經過系統的初使化程序。

因此,開機不到十秒,就是休眠狀態的進化。(蓋章)

Continue reading 在 VirtualBox 體驗 Windows 8

PHP 轉換 Ruby

資深的PHP開發者對於新語言的轉換一直是很痛的很痛。(習慣以往的寫法。)

多如牛毛的PHP開發工程師都是從小就開始 copy & past 寫網站。(初學者好入門。)

公司所聘請的PHP開發員據說薪水都一直很沒有價值。(因為人數太多,所以市場機制下越變越沒價值)

而且很多的網頁美工設計師到後來都變成PHP程式設計師。(沒有MCV觀念)

因此,有些清醒的PHP人都因而轉換跑道。(跑去賣雞排)

在這裡俺以過來人介紹你一個好東西,就是升格為 Ruby on Rails Programer 。當然,這個玩意的學習曲線一開始是非常陡峭的,而且也要有非常好的非常清醒的很有邏輯思考的腦袋才能爬過初學者高牆。

工欲善其事必先利其器,這個網站 PHP TO RUBY 就是你減輕痛苦的好工具,PHP的最大優點就是有內建數百支的強大函式庫供使用。但是在學習轉換 Ruby on Rails 時也是會用到很常見的陣列與字串函式或是日期顯示函式。若不知道在 Ruby 用啥函式來解決,在網海茫茫之下,根本就是汪洋中的一條船。

Continue reading PHP 轉換 Ruby