這篇文章講的很清楚:attributes= (ActiveRecord::Base) - APIdock
這樣要繞過 attr_protected 的 column 時就不用一個一個手動指定了。
- Oct 26 Mon 2009 12:31
[Rails][Model] 使用 attributes= 強行指定被 attr_protected 的 column
- Oct 26 Mon 2009 12:17
[Rails][Model]counter increment(decrement)
1. 使用 Model.increment_counter(counter_name, id):
003:0> User.increment_counter(:hit_counter, 1)
User Update (0.8ms) UPDATE `users` SET `hit_counter` = COALESCE(`hit_counter`, 0) + 1 WHERE (`id` = 1)
2. 使用 Model.update_counters(id, attribute => ammount)
011:0> User.update_counters(1, :hit_counter => 50)
User Update (0.7ms) UPDATE `users` SET `hit_counter` = COALESCE(`hit_counter`, 0) + 50 WHERE (`id` = 1)
第1個方法可以單純的做+1動作,第2個方法多了指定要加多少。
另外,Rails 還有一個 instance method: increment,但我其實不建議使用它。因為他不是用 sql 的加法來達成 incrment.
013:0> user = User.first
014:0> user.increment(:hit_counter, 2)
015:0> user.save
User Update (0.2ms) UPDATE `users` SET `updated_at` = '2009-10-26 04:09:00', `hit_counter` = 163 WHERE `id` = 1
這種方式有可能出現 race condition.
- Oct 26 Mon 2009 11:53
[Rails][Migration]指定 column type: medium text 的方法
這裡主要是講 database 使用 mysql 的狀況。
在 Rails 裡,對於 text 的指定只有一種。
而有時我們需要更大的欄位,比方說 medium text, big text。因為有時候,大一點還是比較好。
這時候在 migration 裡的作法有兩種個方式:
第一種是以指定 limit 大小的方式讓 mysql 自行將欄位設定為 medium text (請注意 "content" ):
-
class CreateArticles < ActiveRecord::Migration
-
def self.up
-
create_table :articles do |t|
-
t.string :title
-
t.text :content, :limit => 64.kilobytes + 1
-
t.timestamps
-
end
-
end
-
-
def self.down
-
drop_table :articles
-
end
-
end
-
第二種是在 self.up 後再 exeucte 自行生成你要的欄位:
-
class CreateArticles < ActiveRecord::Migration
-
def self.up
-
create_table :articles do |t|
-
t.string :title
-
t.timestamps
-
end
-
execute "ALTER TABLE articles ADD `content` MEDIUMTEXT NOT NULL AFTER `title`"
-
end
-
-
def self.down
-
drop_table :articles
-
end
-
end
- Oct 19 Mon 2009 10:00
[Nico中文字幕組]ジェミニ 雙子座
這首歌的作曲者是 Dixie ,他的作品我們之前也有介紹過,《Just Be Friend.》
《雙子座》則是他的 Nico 出道作。
而對繪師紙飛行機(グライダー)來說,這是他第一個以 Vocaloid 雙子(鏡音鈴,鏡音蓮)為主角的的PV,之後所作的PV作品也都是以雙子為主角。
很可愛!(重點)
也因為這部作品的關係,之後 Dixie 出的個人專輯《Fragments》,就請紙飛行機擔當專輯的視覺設計。
專輯也很棒喔!
接下來就請看鏡音雙子唱雙子吧
- Oct 16 Fri 2009 11:14
[Rails]attr_accessible, 應用
在 Rails 裡對做 CRUD 時,有個方便的實作。
params 表示 form parameters,為 hash 型式 (column => value),這樣子若要把 form 的資料接過來只需要一行。
除了 new 之外,還支援這樣的方式:
方便歸方便,但也衍生了一個問題,那就是使用者的 form 表單裡塞了一些我們不希望被修改的 column 時,這些指令依然會被執行。
比方說帳號欄位,我們通常是不希望被修改的。
於是這時候可以使用 attr_accessible 或 attr_protected 來保護這些欄位
attr_protected :account
這樣在使用 new, attributes=(attributes), update_attributes(attributes) 時,account 欄位會被保護,不被這些 method 改變其值。
而如果我們真的要改變的話,需要自行指定。
以下是 Rails api 給的範例,可以更清楚我在講什麼
- Aug 08 Sat 2009 09:13
[KAITO]白虎野少女 (PV: 紙飛行機)
白虎野少女的原曲來自於電影 Paprika
(台灣翻譯為盜夢偵探,改編自筒井康降的SF小說),
由平澤進所作。這也是他和今敏的再度合作。
這部電影的配音卡司很強喔,仔細看會發現有林原惠,古谷徹,大塚明夫等人。
由於這部電影的主題是夢境,
所以身為片尾曲的白虎野少女的歌曲也充滿的奇幻風格。
而在 Nico 動畫上就有人用 KAITO 重唱一遍,
這一唱就成了 KAITO 經典名曲之一。
這首曲子我曾介紹給友人聽,
聽完後經我說明才驚覺這首歌是由虛擬人聲所唱,
可見上傳者調教 KAITO 聲音的功力實在了不起。
今天要介紹的版本又多了PV(上面的版本只有靜態圖),
而且這個 PV 是由台灣人畫的!繪師名: 紙飛行機,BLOG 人間徒然雜記
清爽的畫風與奇幻的歌曲成了絕妙組合,
使得當年還在國軍 online 的我也因此 loop 了數十回...
然後就 Nico 中毒了。(最後還成了付費會員)
紙飛行機還做了許多的 PV,每個 PV 都很可愛好看!
有機會的話還會介紹給大家。
- Aug 03 Mon 2009 08:00
Nico動畫上的繪師:Bravo山田
- Aug 01 Sat 2009 23:02
[Nico字幕組] Vocaloid 排行詐欺
您累了嗎?聽一首歌吧.....
我是上傳者的母親。
體弱多病的兒子,因為第一次的上傳動畫好像很高興的樣子
請大家務必,務必照顧一下兒子的動畫。
您的一個點擊,可以挽回一條生命!請大家告訴大家吧!(無誤!)
- Jul 09 Thu 2009 09:43
試著將 Super Mario World 地上面BGM用木吉它彈
在 Nico 動畫中常會看到像這樣的標題:アコギで弾いてみた
然後我對 アコギ 一直有點疑惑,想說吉它不是就叫ギター嗎
後來查了一下才知道是アコースティック・ギター(Acoustic Guitar)的簡稱,也就是木吉它的意思。
會特地寫下來的原因是我有很長的時間把アコギ看成アシコキ(紳士連結,慎入)的相關物,真是太對不起木吉它了。
話說此篇內容和影片也是一點關係都沒有,也真是抱歉啊
- Jun 14 Sun 2009 05:55
民族音樂曲風集
作者commet:
曲名 1.志方あきこ/ロマの娘 2.ICO/Castle in the Mist 3.zabadak/遠い音楽 4.有坂美香/月迷風影 5.猫叉Master/Caring Dance 6.河井英里/シャ・リオン 7.Sound Horizon/エルの絵本【笛吹き男とパレード】 8.Shanachie/King Of The Fairies 9.清浦夏実/旅の途中 10.村井聖夜/Tir na n'Og 11.霜月はるか/精霊祀 12.zabadak/二月の丘 13.kirche/Schwarz Nacht 14.Sound Horizon/辿りつく詩 15.猫叉Master/サヨナラ・ヘヴン 16.志方あきこ/Kalliope-カリオペ- 17.Shanachie/月の庭 Sally Garden's 18.大神/「Reset」~「ありがとう」バージョン~ mylist mylist/7649914
- May 23 Sat 2009 00:16
贏與輸,強與弱。
這世上,有人喜歡用【贏家】與【輸家】來區分他人。
我比較喜歡用【強者】與【弱者】,因為輸贏有時很表面,但強弱可以很真實。
而對我來說,兩者的差別在於
強者不畏輸,弱者只想贏。
要解釋可以寫很多,但我覺得光這一句話就說很多了。
- May 22 Fri 2009 23:22
健身減肥日記(四)
今天上的是第四堂健身課,依舊從踩腳踏車開始。
前5分鐘力度4,然後6,最後5分鐘8。後面好累啊。
和前面三堂課不太一樣的是今天做的都是新器材,而且比較徧腿部的訓練。
所以我現在腿還抖抖的.........
下一次的課是在星期三早上,所以星期日或一要挑一天去自主訓練兼看正妹!
注意重點:
- 呼吸還不是很直覺,一不注意就會自己憋氣。
- 我好容易緊張啊,而且都是不自覺的。要學會怎麼放鬆才對。
- 我的肌肉柔軟度真是爛斃了。
==
本日紀錄:
2430 | 昨天睡覺的時間 |
1000 | 起床 |
午餐 | 阿忠排骨的招牌飯(炸雞翅, 高麗菜, 豆干, 炸蝦, 香腸) |
晚餐 | 羊肉炒麵 |
- May 15 Fri 2009 15:06
git submodule (Ver 2.0)
發現之前的介紹有許多謬誤,再重新發表一次。
在這裡有很清楚的描寫:Git Submodule Tutorial
如何 Check out 內含 submodule 的 repository (Ex: super)
#git clone {REPO_PATH}/super
#cd super
#git submodule update --init (這行會對 .git/config 補上 submodule 的敍述,同時更新所有的 submodule)
在 super repo 底下更新所有的 submodule repo
# (在 super 根目錄下)
#git pull (會發現有些 submodule 變成 modified)
#git submodule update --init
修改 submodule 的 commit push 流程(Ex: sub-repo)
#(在 sub-repo 下修修改改後)
#git commit -m 'commit log'
#git push
#(回到 super 的根目錄)
#git commit -a -m 'submodule modified'
#git push
要注意的是,使用 git submodule update --init 所 checkout 的 submodule branch 為一個 no name branch. 所以要直接在有 super repo 底下的 submodule 裡做 commit 的話,要先切到可以提交 push 的 branch.(Ex: git checkout master)
在 super repo 下新增 submodule repo: sub-repo2
#(在 super 根目錄下)
#git submodule add {REPO_PATH}/sub-repo2 sub-repo2 (後面的 sub-repo2 可以自訂為你想要的 path name,比方說 loli)
#git commit -m 'add submodule sub-repo2'
#git push
#git submodule init sub-repo2 (這行會對 .git/config 補上 submodule 的敍述)
刪除 submodule 原文寫的很清楚了,這裡就不再提。
- May 10 Sun 2009 00:38
[Nico字幕組]【阿部高和~傳說中的好男人】性感飛行配上跳舞 +α
作者commet:
星間飛行的換詞歌sm3914725 用MMD讓阿部來跳舞。
感謝模組以及工具的開發者們。
某個動畫的commet中寫著,內褲不是條紋內褲就萌不起來、
我把兄貴的內褲改造成條紋內褲了。
上傳人的GUY動畫集mylist/12126067。
- May 10 Sun 2009 00:15
將 MSN 換成 Finch
這張圖是網路上找來的截圖,只是展示用
哈哈哈我終於可以用 screen 來掛 MSN,而且都可以把 log 統合起來了!
而且再也不用忍受那越來越肥的安裝檔了。