ผลต่างระหว่างรุ่นของ "ดูรายละเอียดที่นี่"
ไปยังการนำทาง
ไปยังการค้นหา
Cardcaptor (คุย | มีส่วนร่วม) (หน้าที่ถูกสร้างด้วย '(กำลังเขียนอยู่) ในการบ้านนี้เราจะทำการสร้างระบ…') |
Cardcaptor (คุย | มีส่วนร่วม) |
||
(ไม่แสดง 4 รุ่นระหว่างกลางโดยผู้ใช้ 2 คน) | |||
แถว 6: | แถว 6: | ||
* ผู้เขียนสามารถตั้งค่าต่างๆ ของบล็อก เช่น ชื่อบล็อก, จำนวนโพสต์ที่แสดงในแต่ละหน้า, ฯลฯ | * ผู้เขียนสามารถตั้งค่าต่างๆ ของบล็อก เช่น ชื่อบล็อก, จำนวนโพสต์ที่แสดงในแต่ละหน้า, ฯลฯ | ||
* ผู้เขียนสามารถแท็กบทความต่างๆ ได้ | * ผู้เขียนสามารถแท็กบทความต่างๆ ได้ | ||
− | * | + | * ผู้ใช้สามารถเลือกแสดงและเปลี่ยนตำแหน่ง 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 จำนวนคอมเมนต์เริ่มต้นที่แสดงเวลาดูโพสต์