ผลต่างระหว่างรุ่นของ "ดูรายละเอียดที่นี่"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
(หน้าที่ถูกสร้างด้วย '(กำลังเขียนอยู่)​ ในการบ้านนี้เราจะทำการสร้างระบ…')
 
 
(ไม่แสดง 4 รุ่นระหว่างกลางโดยผู้ใช้ 2 คน)
แถว 6: แถว 6:
 
* ผู้เขียนสามารถตั้งค่าต่างๆ ของบล็อก เช่น ชื่อบล็อก, จำนวนโพสต์ที่แสดงในแต่ละหน้า, ฯลฯ
 
* ผู้เขียนสามารถตั้งค่าต่างๆ ของบล็อก เช่น ชื่อบล็อก, จำนวนโพสต์ที่แสดงในแต่ละหน้า, ฯลฯ
 
* ผู้เขียนสามารถแท็กบทความต่างๆ ได้
 
* ผู้เขียนสามารถแท็กบทความต่างๆ ได้
* ผู้ใช้สามารถเปลี่ยน theme ของบล็อกได้
+
* ผู้ใช้สามารถเลือกแสดงและเปลี่ยนตำแหน่ง widget ตามใจชอบได้
 +
 
 +
== เริ่มต้น ==
 +
* ให้ดาวน์โหลดโค้ดเริ่มต้นจาก ... ในโค้ดเริ่มต้นนี้จะมี scaffold ซึ่งสร้างตามฐานข้อมูลที่เขียนไว้ข้างล่าง พร้อมกับข้อมูลทดสอบส่วนหนึ่งอยู่
 +
* ให้ลงไลบรารี [http://maruku.rubyforge.org/index.html Maruku] ซึ่งเป็นตัวแปรภาษา Makrdown ที่เราจะใช้ในการเขียนเนื้อหาของบล็อก ด้วยการสั่ง
 +
gem install maruku
 +
 
 +
== ฐานข้อมูล ==
 +
ฐานข้อมูลของระบบบล็อกจะประกอบด้วยตารางต่อไปนี้
 +
=== ตาราง posts ===
 +
เก็บโพสต์ของเจ้าของบล็อก มีฟีลด์ดังต่อไปนี้
 +
* title เป็น string
 +
* content เป็น text ซึ่งเขียนด้วยภาษา [http://daringfireball.net/projects/markdown/ Markdown]
 +
* published_at เป็น datetime ซึ่งจะมีค่าเป็น nil ถ้าหากผู้ใช้ยังไม่ได้ตีพิมพ์โพสต์นี้
 +
* timestamp (created_at และ modified_at) ซึ่งสร้างด้วย t.timestamp ใน migration
 +
=== ตาราง comments ===
 +
เก็บคอมเมนต์ที่มีคนมาเขียน มีฟีลด์ดังต่อไปนี้
 +
* name เป็น string เก็บชื่อคนเขียน comment
 +
* email เป็น string เก็บ email ของคนเขียน comment
 +
* url เป็น string เก็บ URL ของเว็บไซต์ของคนเขียน comment
 +
* content เป็น text ซึ่งเขียนด้วยภาษา Markdown เช่นกัน
 +
* post_id เป็น integer ซึ่งเก็บ id ของ post ที่ comment
 +
* timestamp (created_at และ modified_at) ซึ่งสร้างด้วย t.timestamp ใน migration
 +
=== ตาราง tags ===
 +
เก็็บ tag ต่างๆ มีฟีลด์ดังต่อไปนี้
 +
* name เป็น string ซึ่งเป็นชื่อของ tag
 +
=== ตาราง posts_tags ===
 +
ใช้ในการทำความสัมพันธ์แบบ many-to-many ระหว่าง post กับ tag มีฟีลด์ดังต่อไปนี้
 +
* post_id
 +
* tag_id
 +
=== ตาราง settings ===
 +
เก็บค่าต่างๆ ที่ผู้ใช้สามารถกำหนดให้บล็อกได้ เช่น ชื่อบล็อก ฯลฯ มีฟีลด์ดังต่อไปนี้
 +
* name เป็น string ซึ่งเป็นชื่อของค่าที่ผู้ใช้กำหนดได้
 +
* value เป็น string ซึ่งเก็บค่าจริง
 +
ในตาราง settings จะมีค่าต่อไปนี้อยู่
 +
* blog_title
 +
* blog_subtitle
 +
* posts_per_page จำนวนบล็อกในแต่ละหน้า
 +
* comment_count จำนวนคอมเมนต์เริ่มต้นที่แสดงเวลาดูโพสต์

รุ่นแก้ไขปัจจุบันเมื่อ 21:11, 23 กุมภาพันธ์ 2553

(กำลังเขียนอยู่)​ ในการบ้านนี้เราจะทำการสร้างระบบบล็อกเบื้องต้นที่มีฟีเจอร์ดังต่อไปนี้

  • มีหน้าหลักแสดงโพสต์ล่าสุด
  • มีระบบให้ผู้อ่านมาพิมพ์คอมเมนต์
  • มี RSS Feed ของโพสต์
  • หน้าแต่ละหน้าแบ่งออกเป็นสองคอลัมน์ คอลัมน์หนึ่งสำหรับแสดงเนื้อหา และอีกคอลัมน์สำหรับใส่ widget ต่างๆ เกี่ยวกับบล็อก
  • ผู้เขียนสามารถตั้งค่าต่างๆ ของบล็อก เช่น ชื่อบล็อก, จำนวนโพสต์ที่แสดงในแต่ละหน้า, ฯลฯ
  • ผู้เขียนสามารถแท็กบทความต่างๆ ได้
  • ผู้ใช้สามารถเลือกแสดงและเปลี่ยนตำแหน่ง widget ตามใจชอบได้

เริ่มต้น

  • ให้ดาวน์โหลดโค้ดเริ่มต้นจาก ... ในโค้ดเริ่มต้นนี้จะมี scaffold ซึ่งสร้างตามฐานข้อมูลที่เขียนไว้ข้างล่าง พร้อมกับข้อมูลทดสอบส่วนหนึ่งอยู่
  • ให้ลงไลบรารี Maruku ซึ่งเป็นตัวแปรภาษา Makrdown ที่เราจะใช้ในการเขียนเนื้อหาของบล็อก ด้วยการสั่ง
gem install maruku

ฐานข้อมูล

ฐานข้อมูลของระบบบล็อกจะประกอบด้วยตารางต่อไปนี้

ตาราง posts

เก็บโพสต์ของเจ้าของบล็อก มีฟีลด์ดังต่อไปนี้

  • title เป็น string
  • content เป็น text ซึ่งเขียนด้วยภาษา Markdown
  • published_at เป็น datetime ซึ่งจะมีค่าเป็น nil ถ้าหากผู้ใช้ยังไม่ได้ตีพิมพ์โพสต์นี้
  • timestamp (created_at และ modified_at) ซึ่งสร้างด้วย t.timestamp ใน migration

ตาราง comments

เก็บคอมเมนต์ที่มีคนมาเขียน มีฟีลด์ดังต่อไปนี้

  • name เป็น string เก็บชื่อคนเขียน comment
  • email เป็น string เก็บ email ของคนเขียน comment
  • url เป็น string เก็บ URL ของเว็บไซต์ของคนเขียน comment
  • content เป็น text ซึ่งเขียนด้วยภาษา Markdown เช่นกัน
  • post_id เป็น integer ซึ่งเก็บ id ของ post ที่ comment
  • timestamp (created_at และ modified_at) ซึ่งสร้างด้วย t.timestamp ใน migration

ตาราง tags

เก็็บ tag ต่างๆ มีฟีลด์ดังต่อไปนี้

  • name เป็น string ซึ่งเป็นชื่อของ tag

ตาราง posts_tags

ใช้ในการทำความสัมพันธ์แบบ many-to-many ระหว่าง post กับ tag มีฟีลด์ดังต่อไปนี้

  • post_id
  • tag_id

ตาราง settings

เก็บค่าต่างๆ ที่ผู้ใช้สามารถกำหนดให้บล็อกได้ เช่น ชื่อบล็อก ฯลฯ มีฟีลด์ดังต่อไปนี้

  • name เป็น string ซึ่งเป็นชื่อของค่าที่ผู้ใช้กำหนดได้
  • value เป็น string ซึ่งเก็บค่าจริง

ในตาราง settings จะมีค่าต่อไปนี้อยู่

  • blog_title
  • blog_subtitle
  • posts_per_page จำนวนบล็อกในแต่ละหน้า
  • comment_count จำนวนคอมเมนต์เริ่มต้นที่แสดงเวลาดูโพสต์