Programming
Css 網頁符合瀏覽器大小
Ruby on Rails Multiple Foreign Keys
這篇主要是在講說,在一個 Table 裡面有多個 Foreign Keys 會指向同一個 table。例子如下,一首歌 Song 會有歌手 (singer_id) 跟作曲者 (composer_id),都會指向同一個 Singer 的 table。
1 | ┌──────────────────┐ ┌─────────────────────┐ |
Ruby 直接儲存 Tempfile 的方法
先建立一個 Tempfile,然後隨便輸入一些資料進去。
1 | require 'tempfile' |
Tempfile 在程式結束的時候會 f.unlink
刪除檔案,所以在結束之前可以使用 File.rename
移動檔案,讓檔案逃脫免於被刪除的命運。
1 | # File.rename("afile", "afile.bak") |
Ruby on Rails Eager Loading 加速:一次拿取所以資料
這個在 rails 裡面,資料有關聯的時候,會產生的一些效能上的問題,假設我們的例子如下:
1 | ┌──────────────────┐ ┌───────────────────┐ |
當我們在 books controllers 拿了一群東西,像是有 all 或是 where
1 | @books = Book.all |
常常接著又在 view 裡面使用 each 抓取了關聯的東西 author,這時 @books 不知道 author 的內容所以又必須呼叫一次 SQL 指令去拿資料,所以當資料量一大的時候,會產生效能上的問題。
1 | @books.each do |book| |
Ruby on Rails 重新設置 Database
重設 Database 的方法
Status
在重新設置資料庫前先執行 db:migrate:status
,看看現在資料庫的 migrate 的狀態是什麼。
1 | # rake db:migrate:status |
Basic
在重新設置資料庫時,最簡單的方法就是先把資料庫刪除,然後重新建一個,最後在 migrate:
1 | db:drop db:create db:migrate |
Sass 文字置中
Javascript Canvas Load Image with Cross Origin
Canvas Usage
html canvas 簡單來說就是個 image,只是它可以使用 Javascript 來 render 你所想要的樣子,所以能操作的東西十分的多,可以拿來做動畫或是遊戲等等的,有其他的套件輔助會比較方便。
1 | // 建立 canvas |
Load Image From Url
用 Javascript Image 物件來建立圖片。
1 | var img = new Image(); |
Sass 絕對置中 水平置中 垂直置中
絕對置中 absolute center
顧名思義就是水平置中加上垂直置中,讓內層的 div
會在外層的 div
的正中間。
Html
1 | <div class='outer'> |
Scss
1 | .outer { |
任意註解掉 top
left
bottom
right
的參數,可以將內層的 div
對齊在外層的九個位置上,即可解決水平置中與垂直置中的問題。
Sass 圓形階層漸層
Circle Gradient
Sass
參數說明:
- shift: 從中心點移動多少位置,如果是
120px
則會從上一層的div
左上角的原點,往右邊且往下個移120px
。 - step: 多少 pixel 換另一個顏色。
- colors: 每一層的顏色,由內到外排序。
1 | $shift: 120px; |
Ruby OptionParser Usage
OptionParser
這個東西在 python 應該是 setup script,而在 ruby 不知道叫什麼 google 了老半天終於被我找到了。用法上很簡單大概看 ruby doc 的範例就會使用了。
1 | require 'optparse' |