I'm a Ruby on Rails / jQuery web developer. Follow me at @sikachu

Archive for the ‘Ruby on Rails’ Category

Optimize database query ด้วย :include

Friday, August 7th, 2009 Posted in My Project, Programming, Ruby, Ruby on Rails | 1 Comment »

ในการเขียนโปรแกรมบน Ruby on Rails นั้น เรามักที่จะใช้ ActiveRecord ในการทำหน้าที่เป็น ORM ระหว่างตัว Application กับ database ซื่งทำให้การเรียก Record นั้น สามารถทำได้อย่างง่ายดาย เช่น ถ้าผมจะเรียกดู post ทั้งหมดที่มีอยู่ในระบบ ผมแค่สั่ง Post.find(:all) # หรือว่า Post.all ก็ได้ ใน Rails 2.x ซึ่งตรงนี้ ถ้าเราไปดูใน Log file จะพบว่า ActiveRecord นั้น จะใช้คำสั่งค้นหาข้อมูลประมาณนี้ครับ ...

Thin Rolling Restart Patch

Sunday, August 2nd, 2009 Posted in My Project, Programming, Ruby, Ruby on Rails | Comments Off

I wrote a patch for Thin web server to do a rolling restart (i.e. restart the server one at a time) when I was working for my final thesis, Localmapia. I put my source on Github, and already inform the ...

Object#try ใน Rails 2.3

Sunday, August 2nd, 2009 Posted in My Project, Programming, Ruby, Ruby on Rails | Comments Off

เคยเจอปัญหาบ้างไหมครับ กับการที่บางครั้ง object ที่เราเรียก method ไปเนี่ย มันกลายเป็น nil ขึ้นมา ทำให้เกิด exception ขึ้นมา >> @user.username NoMethodError: You have a nil object when you didn't expect it! The error occurred while evaluating nil.username from (irb):1 ซึ่งตรงนี้ เพื่อที่จะหลบ exception ในบางครั้งทำให้ Developer ต้องทำการเช็คก่อนว่า object นั้นเป็น nil หรือไม่ เช่น >> (@user ...

Ruby และ active_support/whiny_nil

Monday, June 29th, 2009 Posted in My Project, Programming, Ruby, Ruby on Rails | Comments Off

สำหรับนักพัฒนาส่วนใหญ่ที่เริ่มเขียน Ruby on Rails คาดว่าตอนนี้ในเครื่องของทุกๆ คน น่าจะลง Ruby 1.8 อยู่ เนื่องจากยังคงมี Gem หลายๆ ตัว ที่ยังไม่รองรับ Ruby 1.9 และทำให้เกิดปัญหาทางด้านความเข้ากันได้อยู่บ้าง ฉะนั้นผมเลยอยากพูดถึงหลุมพรางที่ Ruby 1.8 ได้ทิ้งเอาไว้ และทำให้หลายๆ คนนั้นพลาดตกหลุมกันไปบ้างครับ ผมขอสมมุติเอาไว้ว่า ผมได้สร้างระบบ Blog แห่งหนึ่ง โดยที่มี Model สามตัวคือ Post เอาไว้เก็บข้อความ Comment เอาไว้เก็บความคิดเห็น และ User เอาไว้เก็บชื่อผู้ใช้ ที่สามารถแก้ไขข้อความได้ครับ สมมุติว่า User ที่สามารถเข้ามาแก้ไขได้นี้ ...

Squish it!

Sunday, May 17th, 2009 Posted in Programming, Ruby, Ruby on Rails | Comments Off

ต้องบอกว่า Ruby on Rails นั้นมี helper methods เยอะจริงๆ และบางครั้งถ้าเราไม่ได้เข้าไปดูใน api documentation เราก็จะไม่พบว่ามันมีเมธอดเอาไว้ทำอะไรบ้าง วันนี้ผมเจอ method นึงครับ ซึ่งคิดว่าน่าจะมีประโยชน์ และน่าจะมีใครต้องใช้เมธอดนี้แน่ๆ มีใครบ้างไหมครับ ที่เคยเห็น user ชอบโพสข้อมูลมาเว้นบรรทัดๆๆๆ หลายๆ อัน หรือว่าชอบเคาะ space bar เว้นห่างๆ กัน ทำให้บางครั้งมันดูไม่เรียบร้อย และมันอ่านยาก .. วันนี้ผมมี method มาแนะนำครับ ชื่อว่า #squish ตัวอย่างในการใช้งานก็เป็นอย่างนี้ครับ >> str = %(hello world) => "hello\nworld" >> str.squish => ...

Update Rails แล้วเจอ OpenURI::HTTPError

Tuesday, December 18th, 2007 Posted in Programming, Ruby, Ruby on Rails | No Comments »

วันนี้ลองทำการ update Rails ให้เป็น 2.0.2 (เพิ่งออกเมื่อวานนี้ครับ .. เป็น Bugfix จาก 2.0.1) เนื่องจากว่ายังไม่ได้ลองเขียนอะไรจริงๆ จังๆ ก็เลยทำการอัพเดทให้เป็นรุ่นล่าสุดไว้ก่อน เผื่อว่ามันมีอะไรใหม่ๆ เราจะได้ใช้ feature ใหม่ๆ มันซะเลย   แต่แล้วเจ้ากรรม หลังจากรัน gem update -y แล้วมันดันเกิดปัญหาขึ้นนี่ ..   Updating installed gems... Bulk updating Gem source index for: http://gems.rubyforge.org Attempting remote update of actionmailer ERROR:  While executing gem ... (OpenURI::HTTPError)    ...