[心得] Rails 2.x 升 Rails 4.0 地雷分享

作者: isnora (nora)   2013-07-17 00:47:23
全文 http://blog.hhups.tp.edu.tw/xihu/article_port/4673
升級的程式主要是 Blog 程式,使用者可以下標籤去分類文章,以下的問題搜尋網路幾
乎都有解,集合在一起給有需要的人,希望有人可以因此少碰一些壁。
以下是地雷區
(因為我沒用過 rails 3,所以問題特別多,用過 rails 3的人應該會好一點)
一、rvm 安裝,在 macbook 上安裝不會太困難,沒什麼問題,
安裝 nginx passenger 也沒什麼問題。
二、rvm 在 Server 安裝,用 root 安裝問題很多,根本到現在我還是不會裝,
只好用一般帳號去安裝,接著用一般帳號去安裝 nginx passenger,
最後再用 root 去執行nginx……,可行!
三、mysql gem 用了有問題,要用 mysql2 gem,要不然會有很多 UTF8 的錯誤訊息。
四、 truncate 語法改變,很煩,修這個語法每天都在做。
五、will_paginate 的參數改變,很煩,幾乎每天也在修。
六、我不懂 Gemfile,明明很多人說在上面寫上需要的 gem就行,
但是 mogilefs-client,寫進去也沒用,居然還要 require,
誤打誤撞解決的,要自己在系統下 gem install mogilefs-client。
七、acts_as_threaded,還沒找到替代方案,暫時不去解決,在我去帶班之前,
大概不會想去解決這個問題。
八、acts_as_taggable,安裝後可以用,但是所有以前用的標籤統統不見,在我花
了一個晚上研究後,在資料庫中, update taggings set context='tags',
就好了,為了找出這個問題,在 console 中挖了很久。
九、zsh 不錯用,oh-my-zsh 裝了之後更漂亮。
十、sublime 不錯用,游泳比賽的道次公告,如「陳〇齊」,一百個名字,
幾秒鐘就可以換完,但是顏色我看得很痛苦,尤其是 file tab,實在是很難分辨
,用它來改程式感覺也不錯。
十一、assets 我實在是不懂,好在 ihower(張文鈿)在網路上有寫很棒的文件,
我至少可以運行……;為了用這個東西連在 html 插入 javascript 和 css
都好複雜~,目前還是不懂的狀況,能用就先撐著。
十二、yield :sidebar,這東西超讚,花了一些時間,後台右手邊的 notice block
就用這個做。
十三、web-app-theme,組成新版西湖日誌後台的東西,搞不太懂,
如果只有引入它的 js css,表格怪怪的,一起把 bootstrap 引入才會正常;
使用 icon 變得好簡單。
十四、拖曳變的非常非常的麻煩,都要自己寫 jquery,上次看 jquery 是胖子剛出生
的時候,書也借給阿福教授……0rz....,我哪會寫啊,勉強查網路的來改了。
十五、swfupload 沒了,只好使用 rails-jquery-upload,弄了好久好久,
終於可以批次上傳照片,但是……在 development 下可以稍稍正常執行,
到了 production 下,會出現錯誤訊息,雖然照片還是會傳上去,
但那訊息讓人看了不快,目前還沒辦法解決。
十六、 production 下的 assets 怪怪的,icon都出不來,改了 production.rb
下許多東西;config.serve_static_assets改成 true 、
config.assets.compile 改 true、
config.assets.precompile += %w( search.js ) 解除 mark;
當然,我也不甚瞭解它的意思,反正最後是會動了。
十七 、RAILS_ROOT 的常數被改掉了,改成 Rails.root.to_s,還要自己 to_s ……。
十八、令人傻眼的 sandbox……,昨晚將西湖日誌用新版上線後,發現用 iframe 去讀
Rails4 的程式統統無法運做,最後發現是啥 sandbox 的安全性問題,
弄了好久好久,最後,一行解決;在 production.rb
config.action_dispatch.default_headers = 'SAMEORIGIN';
這個問題到現在還是覺得很怪,這個好像是 html5 的東西,但是我們學校的
網頁是 html4,應該是不會有這個問題才是……。
作者: Blueshiva (龍野南雲)   2013-07-17 00:58:00
怎麼覺得你這種改法改完才是地雷的開始...
作者: wuboy (光陰的故事)   2013-07-17 01:34:00
尤其是assets的部分...感覺這樣勉強改不如不改的好...
作者: hellolucky (做自己 好自在)   2013-07-17 01:35:00
Rails 2.x => Rails 3.x 改比較多Rails 3.x => Rails 4.x 其實不會太痛苦如果硬升級 不如開一個新的Rails 4 做乾坤大挪移先開新project測試gem的相容性 如果在github更新時間超過一年得就可以考慮找新的GEM 如果持續有在更新看看branch或tag有沒有支援Rails 4
作者: isnora (nora)   2013-07-17 09:09:00
感謝大家的意見,我是新開一個 rails4 再一個一個修檔案因為可以寫程式的時間不多,且戰且走,等有書再來慢慢讀~
作者: hellolucky (做自己 好自在)   2013-07-17 10:44:00
建議可以先了解Rails 2 => 3.2的改變,再去學習4

Links booklink

Contact Us: admin [ a t ] ucptt.com