community engine
剛剛把rails 的一個plugin-community engine 給裝起來用用看。這個plugin特殊在他可以是一整個網站,也可以透過plugin的模式寄生在宿主的project中。 他的plugin 模式其實就是把原本的網站裝到 vendor/plugin/community_engine 然後透過一些設定讓plugin裡面的網站可以伸出頭來呼吸。 rails 真的很猛…..
最近跟朋友都在研究這一堆plugin,收穫頗豐呢!
剛剛把rails 的一個plugin-community engine 給裝起來用用看。這個plugin特殊在他可以是一整個網站,也可以透過plugin的模式寄生在宿主的project中。 他的plugin 模式其實就是把原本的網站裝到 vendor/plugin/community_engine 然後透過一些設定讓plugin裡面的網站可以伸出頭來呼吸。 rails 真的很猛…..
最近跟朋友都在研究這一堆plugin,收穫頗豐呢!
source:http://www.railslodge.com/plugins/1045-rails-data-browser
類似phpmyadmin 不過主要針對model 的 CRUD,不含資料庫管理功能。
rails 1.2.x似乎不能用,rails 2.x以上可以正常運作。
via:bundle-fu
這個RoR的plugin看起來很棒。我們一般在寫網頁的時候都會依照每一個網頁的需求include 不同的css/js 檔案。例如說,我們有一個main.css 掌控基本的設定,但是在產品檢視頁面可能要include 特定的 product.css/js
不過如果檔案一多的話,connection 開開關關的就會讓網頁變得比較慢才下載完成(不管大小)。所以最佳化的手冊都會告訴我們減少額外include 的檔案數量。
簡單的說,他會把你在網頁中include 的 js/css 各包成一個檔。使用上也很簡單,原本是這樣寫:
<%= javascript_include_tag “prototype” %>
<%= stylesheet_link_tag “basic.css” %>
<%= calendar_date_select_includes “red” %>
<script src=”javascripts/application.js” type=”text/javascript”></script>
裝了這個plugin之後,只要改成這樣寫:
<% bundle do %>
<%= javascript_include_tag “prototype” %>
<%= stylesheet_link_tag “basic.css” %>
<%= calendar_date_select_includes “red” %>
<script src=”javascripts/application.js” type=”text/javascript”></script>
<% end %>
最後html的頁面就會被個包成一個檔。像是這樣:
<script src=”javascripts/cache/application_bundle.js?1193283359″ type=”text/javascript”></script>
<link rel=’stylesheet’ href=”javascripts/cache/application_bundle.css?1193283359′ type=’text/css’ />
看起來真的很棒阿
其實很簡單,請參考 HowtoGenerateARSSFeed 這篇。我是用第一種用法,看起來大致上就夠了。不過有幾點要注意一下。
1. @headers["Content-Type"] = “application/xml” 要改成 headers["Content-Type"] = “application/xml”
2. 如果有中文字都會被escaped掉。
例如標題是:測試,直接打開xml來看就會變成:
瀏覽器打開來看是正常啦,可是我個人不是很喜歡這樣…,所以有幾種可行的方式可以處理。
1)第一種就是封在CDATA! ex:
xml.title{ xml.cdata!(“測試”) }
那生出來的內容就不會幫你做處理(阿就都包在[[CDATA! 裡了阿)。
2)第二種就是使用 << 運算子 讓ror 內帶的rexml Builder知道要掠過這段處理。 ex:
xml.title do
xml.<<”測試”
end
這樣就可以了,不知道還有沒有更好的方法@@,原本xml builer 裡面是寫可以建立的時候給定 escape_attrs 這個參數。不過嘛…裡面也說這個參數不建議使用了。 其實這兩個方法應該可以一起使用,一般來說(RSS2.0),title的值都是已經濾掉html tag 的東東,所以就可以使用第二種方法。
description中的話,也可以自己濾掉後用CDATA封起來。但是在<content:encoded>中濾掉html tag 的話就不是很好了阿….,所以就可以使用第一種方法來維持原有的樣式。
active_scaffold_upload Acts_as_authenticated 這兩個plugin會衝突…
錯誤訊息是: undefined method `[]‘ for xxxxxxxx
因為沒在用 active_scaffold_upload 所以移掉它就好了
適用版本:RMagick 1.14.1 binary gem for Ruby 1.8.5
奇怪語法好像改變了,現在使用
img = Magick::ImageList.new(“filename”)
會出現什麼 can’t convert string to integer …. 的錯誤,查了官方的api,這樣用法沒錯阿….,不知道是啥鬼問題,不過現在沒那美國時間去追程式碼。我猜可能是版本的問題吧,反正現在要縮圖的話,可以用下列的語法。
img = Magick::Image.read(“filename”).first # 因為 可以讀入很多圖檔,所以傳回值是一個陣列
thumbnail = img.thumbnail(width,height)
thumbnail.write(“filename”)
要注意的是如果你縮圖存在別的目錄,那麼那個目錄要先存在喔。
最近要做個網站,在ror 跟wicket中看了看還是挑了ror,一方面是時間不太夠,ror可以幫助我用最快的速度把這個網站做出來。另一方面就是:反正套頁都是我們這些寫程式的在套,wicket那漂亮的樣板系統也用不太到啦@@
這個plug in可以讓ror的網站,以飛快的速度擁有可以對物件下tag的能力。這是其他framework望塵莫及的地方阿!!!
不過原始的這個套件找不太到了,找到還有點問題。 首先我打
ruby script/plugin install acts_as_taggable
唔,找不到這個plugin…,到官方的wiki上找到官方的svn 裡面也沒有這個套件了…找了好久,一種解決方法是打
ruby script/plugin discover
讓ror 找到更多套件庫的位置,但是抓下來裝的有問題阿…orz 找不到加tag 的method….
所以,只好繼續找,終於找到這套,抓下來的時候會同名,但是是後來改寫過的:Acts As Taggable On Steroids。
安裝要這樣:
ruby script/plugin install http://svn.viney.net.nz/things/rails/plugins/acts_as_taggable_on_steroids
其他使用方面改變不大,但是現在設定tag後,要記得 object.save才會更動到資料庫裡(效能考量吧,我想)。
最新留言