Mongoid Slug กับ Ruby on rails

เขียนโดย นายวุฒิไกร ลิ่มสกุล : 30 มิ.ย 2558

        Mongoid slug เป็น gem สำหรับแปลง url ที่ไม่เป็นมิตรกับมนุษย์ หรืออ่านแล้วไม่เข้าใจ ให้อ่านเข้าใจ
อย่างเช่น https://swiftlet.co.th/92cc35193275461e1e95569c เป็น https://swiftlet.co.th/mongoid-slug เป็นต้น
ซึ่งจะมีผลอย่างมากกับ SEO (Search engine optimization) อย่ารอช้ามาเริ่มกันเลยดีกว่า
เริิ่มจากการลง gem ก่อน เพิ่มเข้าไปยังไฟล์ Gemfile

[code language="ruby"]
gem "mongoid_slug"
[/code]

อย่าลืมไปที่ Terminal แล้วเข้าไปยัง directory ของ project จากนั้นพิมพ์คำสั่ง

[code language="html"]
$bundle install
[/code]

เมื่อทำการติดตั้ง gem เสร็จเรียบร้อยแล้ว ต่อไปก็เพิ่ม บรรทัดที่ 3 และ 6 เข้าไปในไฟล์ model

[code language="ruby" highlight="3,6"]
class Post
  include Mongoid::Document
  include Mongoid::Slug

  field :title, type: String
  slug :title
end
[/code]

จากบรรทัดที่ 6 จะเห็นว่า slug :title โดย :title จะเหมือนกับ field :title ที่มี type: เป็น String จะหมายความว่าเมื่อเราทำการ save หรือ update ข้อมูล slug จะทำการแปลงข้อมูลที่อยู่ใน field :title เป็น คำที่มนุษย์อ่านเข้าใจ ทั้งนี้ slug ยังไม่ความสามารถที่จะแปลภาษาให้อีกด้วย ถ้าเกิด field :title เป็นคำภาษาอื่นที่ไม่ใช่ภาษาอังกฤษ ให้เป็นภาษาอังกฤษ (เจ๋ง ป่าวล่ะ) และสำหรับการเรียกใช้งานก็ง่ายแสนจะง่าย ตาม code ด้านล่างนี้เลย

[code language="ruby"]
# find by ID
Post.find("92cc35193275461e1e95569c")

# find by slug
Post.find("mongoid-slug")
[/code]

แค่นี้เองง่ายใช่ไหมล่ะ

😀 ขอให้สนุกกับการเขียนโปรแกรมนะครับ 😀