ผลต่างระหว่างรุ่นของ "418342 ภาคปลาย 2553/คะแนนและการส่งการบ้าน"
ไปยังการนำทาง
ไปยังการค้นหา
Cardcaptor (คุย | มีส่วนร่วม) |
Cardcaptor (คุย | มีส่วนร่วม) |
||
(ไม่แสดง 51 รุ่นระหว่างกลางโดยผู้ใช้ 2 คน) | |||
แถว 1: | แถว 1: | ||
+ | == การส่งงาน == | ||
+ | |||
<table border="1"> | <table border="1"> | ||
<tr> | <tr> | ||
แถว 72: | แถว 74: | ||
<tr> | <tr> | ||
<td>51043214</td> | <td>51043214</td> | ||
− | <td></td> | + | <td>ส่งช้า</td> |
<td></td> | <td></td> | ||
<td>ส่งแล้ว</td> | <td>ส่งแล้ว</td> | ||
แถว 79: | แถว 81: | ||
<tr> | <tr> | ||
<td>50180249</td> | <td>50180249</td> | ||
− | <td></td> | + | <td>ส่งช้า</td> |
− | <td></td> | + | <td>ส่งช้า</td> |
− | <td></td> | + | <td>ส่งช้า</td> |
</tr> | </tr> | ||
แถว 95: | แถว 97: | ||
<td>ส่งแล้ว</td> | <td>ส่งแล้ว</td> | ||
<td>ส่งแล้ว</td> | <td>ส่งแล้ว</td> | ||
+ | <td>ส่งแล้ว</td> | ||
+ | </tr> | ||
+ | |||
+ | </table> | ||
+ | |||
+ | <br/> | ||
+ | |||
+ | == คะแนนการบ้าน 1 == | ||
+ | |||
+ | <table border="1"> | ||
+ | <tr> | ||
+ | <td>รหัสประจำตัว</td> | ||
+ | <td>A (30)</td> | ||
+ | <td>B (10)</td> | ||
+ | <td>C (10)</td> | ||
+ | <td>D (20)</td> | ||
+ | <td>E (10)</td> | ||
+ | <td>F (10)</td> | ||
+ | <td>G (10)</td> | ||
+ | <td>รวม</td> | ||
+ | <td>หมายเหตุ</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>50040229</td> | ||
+ | <td>30</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>0</td> | ||
+ | <td>0</td> | ||
+ | <td>70</td> | ||
+ | <td> | ||
+ | * -10 เนื่องจากแสดงข้อมูลทั้งหมด ไม่ลิมิตไว้ที่ 100 record | ||
+ | * -20 เนื่องจาก search ได้เพียง field Name เพียง field เดียว ที่เหลือ search ไม่ได้ | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>50042993</td> | ||
+ | <td>30</td> | ||
+ | <td>10</td> | ||
+ | <td>2</td> | ||
+ | <td>10</td> | ||
+ | <td>0</td> | ||
+ | <td>0</td> | ||
+ | <td>0</td> | ||
+ | <td>52</td> | ||
+ | <td> | ||
+ | * -8 เนื่องจากมีเพียง 113 record | ||
+ | * -30 เนื่องจาก search ไม่ได้เลย | ||
+ | * -10 เนื่องจากแสดงข้อมูลทั้งหมด ไม่ลิมิตไว้ที่ 100 record | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>50043058</td> | ||
+ | <td>30</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>0</td> | ||
+ | <td>0</td> | ||
+ | <td>0</td> | ||
+ | <td>60</td> | ||
+ | <td> | ||
+ | * -10 เนื่องจากแสดงข้อมูลทั้งหมด ไม่ลิมิตไว้ที่ 100 record | ||
+ | * -30 เนื่องจาก search ไม่ได้ | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>50043082</td> | ||
+ | <td>30</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>20</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>100</td> | ||
+ | <td></td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>50043140</td> | ||
+ | <td>30</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>90</td> | ||
+ | <td> | ||
+ | * -10 เนื่องจากแสดงข้อมูลทั้งหมด ไม่ลิมิตไว้ที่ 100 record | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>50043173</td> | ||
+ | <td>30</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>20</td> | ||
+ | <td>10</td> | ||
+ | <td>0</td> | ||
+ | <td>0</td> | ||
+ | <td>80</td> | ||
+ | <td> | ||
+ | * -20 เนื่องจากไม่อนุญาตให้ผู้ใช้ search เงื่อนไขหลายๆ เงื่อนไขพร้อมๆ กัน | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>50043215</td> | ||
+ | <td>30</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>0</td> | ||
+ | <td>0</td> | ||
+ | <td>70</td> | ||
+ | <td> | ||
+ | * -10 เนื่องจากแสดงข้อมูลทั้งหมด ไม่ลิมิตไว้ที่ 100 record | ||
+ | * -20 เนื่องจากเวลา search เงื่อนไขหลายๆ อัน แล้วทำเหมือนกับ search ได้เพียงเงื่อนไขเดียวคือเงื่อนไขสุดท้ายเท่านั้น | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>50043231</td> | ||
+ | <td>30</td> | ||
+ | <td>8</td> | ||
+ | <td>2</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>80</td> | ||
+ | <td> | ||
+ | * -2 เนื่องจากมีเพียงแค่ 4 ฟีลด์ | ||
+ | * -8 เนื่องจากมีเพียงแค่ 137 record | ||
+ | * -10 เนื่องจากแสดงข้อมูลทั้งหมด ไม่ลิมิตไว้ที่ 100 record | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>50043306</td> | ||
+ | <td>30</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>90</td> | ||
+ | <td> | ||
+ | * -10 เนื่องจากแสดงข้อมูลทั้งหมด ไม่ลิมิตไว้ที่ 100 record | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>51043214</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>70</td> | ||
+ | <td> | ||
+ | * -10 เนื่องจากแสดงข้อมูลทั้งหมด ไม่ลิมิตไว้ที่ 100 record | ||
+ | * -20 ส่งช้า | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>50180249</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>70</td> | ||
+ | <td> | ||
+ | * -10 เนื่องจากแสดงข้อมูลทั้งหมด ไม่ลิมิตไว้ที่ 100 record | ||
+ | * -20 ส่งช้า | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>51180198</td> | ||
+ | <td>30</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>90</td> | ||
+ | <td> | ||
+ | * -10 เนื่องจากแสดงข้อมูลทั้งหมด ไม่ลิมิตไว้ที่ 100 record | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>51180503</td> | ||
+ | <td>30</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>90</td> | ||
+ | <td> | ||
+ | * -10 เนื่องจากแสดงข้อมูลทั้งหมด ไม่ลิมิตไว้ที่ 100 record | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | </table> | ||
+ | |||
+ | === เกณฑ์การให้คะแนน === | ||
+ | * A: migration รันผ่าน (30) | ||
+ | * B: จำนวนฟีลด์ (10) | ||
+ | * C: จำนวน record (10) | ||
+ | * D: หน้า search สามารถแสดงข้อมูลได้เมื่อไม่ใส่ข้อมูล search อะไรเลย (20) | ||
+ | * E: Search ฟีลด์ 1 (10) | ||
+ | * F: Search ฟีลด์ 2 (10) | ||
+ | * G: Search ฟีลด์ 3 (10) | ||
+ | |||
+ | |||
+ | <br/> | ||
+ | |||
+ | == คะแนนการบ้าน 2 == | ||
+ | |||
+ | <table border="1"> | ||
+ | <tr> | ||
+ | <td width="10%">รหัสนิสิต</td> | ||
+ | <td width="5%">A(10)</td> | ||
+ | <td width="5%">B(15)</td> | ||
+ | <td width="5%">C(15)</td> | ||
+ | <td width="5%">D(15)</td> | ||
+ | <td width="5%">E(30)</td> | ||
+ | <td width="5%">F(15)</td> | ||
+ | <td width="5%">รวม</td> | ||
+ | <td width="55%">หมายเหตุ</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>50040229</td> | ||
+ | <td>10</td> | ||
+ | <td>0</td> | ||
+ | <td>15</td> | ||
+ | <td>0</td> | ||
+ | <td>20</td> | ||
+ | <td>0</td> | ||
+ | <td>45</td> | ||
+ | <td> | ||
+ | * -15 ไม่มี Authentication | ||
+ | * -15 ไม่มี Field Validations | ||
+ | * -15 ไม่มีรายงานรายรับรายจ่าย | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>50042993</td> | ||
+ | <td>10</td> | ||
+ | <td>15</td> | ||
+ | <td>15</td> | ||
+ | <td>10</td> | ||
+ | <td>25</td> | ||
+ | <td>10</td> | ||
+ | <td>85</td> | ||
+ | <td> | ||
+ | * -5 ไม่มีการแจ้งว่าข้อมูลผิดอย่างไร | ||
+ | * -5 รายงานแจกแจงไม่สมบูรณ์ | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>50043058</td> | ||
+ | <td>10</td> | ||
+ | <td>15</td> | ||
+ | <td>15</td> | ||
+ | <td>15</td> | ||
+ | <td>30</td> | ||
+ | <td>15</td> | ||
+ | <td>100</td> | ||
+ | <td> | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>50043082</td> | ||
+ | <td>10</td> | ||
+ | <td>15</td> | ||
+ | <td>15</td> | ||
+ | <td>15</td> | ||
+ | <td>30</td> | ||
+ | <td>15</td> | ||
+ | <td>100</td> | ||
+ | <td> | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>50043140</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>15</td> | ||
+ | <td>15</td> | ||
+ | <td>25</td> | ||
+ | <td>0</td> | ||
+ | <td>75</td> | ||
+ | <td> | ||
+ | * -5 สามารถเพิ่มรายการได้แม้ว่ายังไม่ผ่านการล็อกอิน | ||
+ | * -15 เรียกดูรายงานแล้วเกิด error ว่า undefined method 'datetimedo' for nil:NilClass | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>50043173</td> | ||
+ | <td>10</td> | ||
+ | <td>10</td> | ||
+ | <td>15</td> | ||
+ | <td>15</td> | ||
+ | <td>20</td> | ||
+ | <td>5</td> | ||
+ | <td>75</td> | ||
+ | <td> | ||
+ | * -5 แม้ว่าล็อกเอ้าท์แล้วก็ยังสามารถกลับไปทำรายการได้ | ||
+ | * -10 ขาดการจำแนกประเภทรายการรายรับและรายจ่าย | ||
+ | * -10 รายงานขาดความสมบูรณ์ | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>50043215</td> | ||
+ | <td>10</td> | ||
+ | <td>15</td> | ||
+ | <td>15</td> | ||
+ | <td>15</td> | ||
+ | <td>20</td> | ||
+ | <td>5</td> | ||
+ | <td>80</td> | ||
+ | <td> | ||
+ | * -10 ขาดการจำแนกประเภทรายการรายรับและรายจ่าย | ||
+ | * -10 รายงานขาดความสมบูรณ์ | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>50043231</td> | ||
+ | <td>10</td> | ||
+ | <td>15</td> | ||
+ | <td>15</td> | ||
+ | <td>15</td> | ||
+ | <td>20</td> | ||
+ | <td>5</td> | ||
+ | <td>80</td> | ||
+ | <td> | ||
+ | * -10 ขาดการจำแนกประเภทรายการรายรับและรายจ่าย | ||
+ | * -10 รายงานขาดความสมบูรณ์ | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>50043306</td> | ||
+ | <td>10</td> | ||
+ | <td>15</td> | ||
+ | <td>15</td> | ||
+ | <td>15</td> | ||
+ | <td>20</td> | ||
+ | <td>5</td> | ||
+ | <td>80</td> | ||
+ | <td> | ||
+ | * -10 ขาดการจำแนกประเภทรายการรายรับและรายจ่าย | ||
+ | * -10 รายงานยังจำแนกได้ไม่ละเอียด | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>51043214</td> | ||
+ | <td></td> | ||
+ | <td></td> | ||
+ | <td></td> | ||
+ | <td></td> | ||
+ | <td></td> | ||
+ | <td></td> | ||
+ | <td></td> | ||
+ | <td></td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>50180249</td> | ||
+ | <td></td> | ||
+ | <td></td> | ||
+ | <td></td> | ||
+ | <td></td> | ||
+ | <td></td> | ||
+ | <td></td> | ||
+ | <td></td> | ||
<td></td> | <td></td> | ||
</tr> | </tr> | ||
+ | <tr> | ||
+ | <td>51180198</td> | ||
+ | <td>10</td> | ||
+ | <td>15</td> | ||
+ | <td>15</td> | ||
+ | <td>0</td> | ||
+ | <td>20</td> | ||
+ | <td>10</td> | ||
+ | <td>70</td> | ||
+ | <td> | ||
+ | * -10 ขาดการจำแนกประเภทรายการรายรับและรายจ่าย | ||
+ | * -15 ไม่มี Field Validations | ||
+ | * -5 รายงานยังจำแนกได้ไม่ละเอียด | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>51180503</td> | ||
+ | <td>0</td> | ||
+ | <td>15</td> | ||
+ | <td>10</td> | ||
+ | <td>15</td> | ||
+ | <td>15</td> | ||
+ | <td>5</td> | ||
+ | <td>60</td> | ||
+ | <td> | ||
+ | * -10 โปรแกรมเกิด routing error | ||
+ | * -10 รายงานไม่เหมาะสมในการใช้งาน</td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | |||
+ | === เกณฑ์การให้คะแนน === | ||
+ | * A: เตรียมข้อมูลเบื้องต้น migration และ seed (10) | ||
+ | * B: Authentication แต่ละผู้ใช้ (15) | ||
+ | * C: CSS และ form layout ที่เหมาะสม (15) | ||
+ | * D: Field Validations (15) | ||
+ | * E: ความสมบูรณ์ในการทำงานของโปรแกรม (30) | ||
+ | * F: รายงานรายรับรายจ่าย (15) | ||
+ | |||
+ | <br/> | ||
+ | |||
+ | == คะแนนการบ้าน 3 == | ||
+ | |||
+ | === คนที่ได้คะแนน === | ||
+ | * 50043058 ได้ 70 คะแนน | ||
+ | ** (-4) posts/show: wrong formatting | ||
+ | ** (-2) posts/show: wrong comment form redirect | ||
+ | ** (-4) posts/index: wrong formatting | ||
+ | ** (-2) posts/index: wrong comment link redirect | ||
+ | ** (-4) comments/index: wrong formatting | ||
+ | ** (-10) tag/show: doesn't follow instruction | ||
+ | * 50043173 ได้ 78 คะแนน | ||
+ | ** (-4) posts/show: wrong formatting | ||
+ | ** (-4) posts/index: wrong formatting | ||
+ | ** (-2) posts/index: wrong comment link redirect | ||
+ | ** (-2) comments/index: wrong formatting | ||
+ | ** (-4) tag/show: AJAX doesn’t work | ||
+ | ** (-2) tag/show: wrong formatting | ||
+ | ** (-4) tag/show: display not correct | ||
+ | * 51043214 ได้ 40 คะแนน | ||
+ | ** (-60) doesn't do other problem besides 1 and 2 | ||
+ | * 51180198 ได้ 70 คะแนน | ||
+ | ** (-4) posts/show: wrong formatting | ||
+ | ** (-2) posts/index: wrong formatting | ||
+ | ** (-2) posts/index: wrong comment link redirect | ||
+ | ** (-4) posts/admin: no unpublish | ||
+ | ** (-10) posts/edit: doesn't work | ||
+ | ** (-2) comments/index: wrong formatting | ||
+ | ** (-4) tag/show: AJAX doesn't work | ||
+ | ** (-2) tag/show: wrong formatting | ||
+ | * 51180503 ได้ 78 คะแนน | ||
+ | ** (-2) posts/show: wrong formatting | ||
+ | ** (-2) posts/index: wrong comment link redirect | ||
+ | ** (-4) posts/edit: no tag input | ||
+ | ** (-6) posts/edit: all redirects are wrong | ||
+ | ** (-2) comments/index: wrong formatting | ||
+ | ** (-6) tags/show: cannot edit tag, so cannot show if it's correct | ||
+ | * 51080249 ได้ 25 คะแนน | ||
+ | ** (-20) late submission | ||
+ | ** (-5) setting test doesn't pass | ||
+ | ** (-10) post/show doesn't work | ||
+ | ** (-10) post/index doesn't work | ||
+ | ** (-10) post/admin doesn't work | ||
+ | ** (-10) doesn't modify post/edit | ||
+ | ** (-4) tag/show: wrong formatting | ||
+ | ** (-2) tag/show: AJAX doesn’t work | ||
+ | ** (-4) tag/show: display not correct | ||
+ | |||
+ | === คนที่ไม่ได้คะแนนเนื่องจากลอกกัน === | ||
+ | * 50042993 | ||
+ | * 50040229 | ||
+ | * 50043082 | ||
+ | * 50043140 | ||
+ | * 50043215 | ||
+ | * 50043231 | ||
+ | * 50043360 | ||
+ | |||
+ | === ฟังก์ชัน update ใน app/controllers/posts_controller.rb (Pattern 1) === | ||
+ | <table> | ||
+ | <tr> | ||
+ | <td align="center">50042993</td> | ||
+ | <td align="center">50043082</td> | ||
+ | <td align="center">50043215</td> | ||
+ | <td align="center">50043231</td> | ||
+ | <td align="center">50043360</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td> | ||
+ | <geshi lang="ruby"> | ||
+ | def update | ||
+ | @post = Post.find(params[:id]) | ||
+ | type = params['post']['buttonType'] | ||
+ | params['post'].delete('buttonType') | ||
+ | tags = params['post']['tags'] | ||
+ | |||
+ | arrayTag = [] | ||
+ | |||
+ | tags.split(',').each do |tag| | ||
+ | t = Tag.new | ||
+ | t.name = Tag.normalize_name(tag) | ||
+ | arrayTag << t | ||
+ | end | ||
+ | |||
+ | params['post']['tags'] = arrayTag | ||
+ | |||
+ | if type == '1' | ||
+ | redirect_action = 'admin' | ||
+ | elsif type == '2' | ||
+ | redirect_action = 'edit' | ||
+ | elsif type == '3' | ||
+ | params['post']['published_at'] = Time.now.getutc | ||
+ | redirect_action = 'index' | ||
+ | end | ||
+ | </geshi> | ||
+ | </td> | ||
+ | <td> | ||
+ | <geshi lang="ruby"> | ||
+ | def update | ||
+ | @post = Post.find(params[:id]) | ||
+ | buttontype = params['post']['buttontype'] | ||
+ | params['post'].delete('buttontype') | ||
+ | |||
+ | tag_array = [] | ||
+ | |||
+ | params['post']['tags'].split(',').each do |t| | ||
+ | tag = Tag.new | ||
+ | tag.name = Tag.normalize_name(t) | ||
+ | tag_array << tag | ||
+ | end | ||
+ | |||
+ | if buttontype == '1' | ||
+ | redirect_action = 'admin' | ||
+ | elsif buttontype == '2' | ||
+ | redirect_action = 'edit' | ||
+ | elsif buttontype == '3' | ||
+ | params['post']['published_at'] = Time.now.getutc | ||
+ | redirect_action = 'index' | ||
+ | end | ||
+ | |||
+ | params['post']['tags'] = tag_array | ||
+ | </geshi> | ||
+ | </td> | ||
+ | <td> | ||
+ | <geshi lang="ruby"> | ||
+ | def update | ||
+ | @post = Post.find(params[:id]) | ||
+ | type = params['post']['buttonType'] | ||
+ | params['post'].delete('buttonType') | ||
+ | tags = params['post']['tags'] | ||
+ | |||
+ | arrayTag = [] | ||
+ | |||
+ | tags.split(',').each do |tag| | ||
+ | t = Tag.new | ||
+ | t.name = Tag.normalize_name(tag) | ||
+ | arrayTag << t | ||
+ | end | ||
+ | |||
+ | params['post']['tags'] = arrayTag | ||
+ | |||
+ | if type == '1' | ||
+ | redirect_action = 'admin' | ||
+ | elsif type == '2' | ||
+ | redirect_action = 'edit' | ||
+ | elsif type == '3' | ||
+ | params['post']['published_at'] = Time.now.getutc | ||
+ | redirect_action = 'index' | ||
+ | end | ||
+ | </geshi> | ||
+ | </td> | ||
+ | <td> | ||
+ | <geshi lang="ruby"> | ||
+ | def update | ||
+ | @post = Post.find(params[:id]) | ||
+ | type = params['post']['buttontype'] | ||
+ | params['post'].delete('buttontype') | ||
+ | |||
+ | tag_array = [] | ||
+ | |||
+ | params['post']['tags'].split(',').each do |t| | ||
+ | tag = Tag.new | ||
+ | tag.name = Tag.normalize_name(t) | ||
+ | tag_array << tag | ||
+ | end | ||
+ | |||
+ | if type == '1' | ||
+ | redirect_action = 'admin' | ||
+ | elsif type == '2' | ||
+ | redirect_action = 'edit' | ||
+ | elsif type == '3' | ||
+ | params['post']['published_at'] = Time.now.getutc | ||
+ | redirect_action = 'index' | ||
+ | end | ||
+ | params['post']['tags'] = tag_array | ||
+ | </geshi> | ||
+ | </td> | ||
+ | <td> | ||
+ | <geshi lang="ruby"> | ||
+ | def update | ||
+ | @post = Post.find(params[:id]) | ||
+ | buttontype = params['post']['buttontype'] | ||
+ | params['post'].delete('buttontype') | ||
+ | |||
+ | tag_array = [] | ||
+ | |||
+ | params['post']['tags'].split(',').each do |t| | ||
+ | tag = Tag.new | ||
+ | tag.name = Tag.normalize_name(t) | ||
+ | tag_array << tag | ||
+ | end | ||
+ | |||
+ | if buttontype == '1' | ||
+ | redirect_action = 'admin' | ||
+ | elsif buttontype == '2' | ||
+ | redirect_action = 'edit' | ||
+ | elsif buttontype == '3' | ||
+ | params['post']['published_at'] = Time.now.getutc | ||
+ | redirect_action = 'index' | ||
+ | end | ||
+ | |||
+ | params['post']['tags'] = tag_array | ||
+ | </geshi> | ||
+ | </td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | |||
+ | === ฟังก์ชัน update ใน app/controllers/posts_controller.rb (Pattern 2) === | ||
+ | <table> | ||
+ | <tr> | ||
+ | <td align="center">50040229</td> | ||
+ | <td align="center">50043140</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td> | ||
+ | <geshi lang="ruby"> | ||
+ | def update | ||
+ | @post = Post.find(params[:id]) | ||
+ | buttontype = params['post']['buttontype'] | ||
+ | params['post'].delete('buttontype') | ||
+ | |||
+ | tag_array = [] | ||
+ | |||
+ | |||
+ | for t in params['post']['tags'].split(',') | ||
+ | |||
+ | tag = Tag.new | ||
+ | tag.name = Tag.normalize_name(t) | ||
+ | tag_array << tag | ||
+ | |||
+ | end | ||
+ | |||
+ | if buttontype == '2' | ||
+ | redirect_action = 'edit' | ||
+ | elsif buttontype == '3' | ||
+ | params['post']['published_at'] = Time.now.getutc | ||
+ | redirect_action = 'index' | ||
+ | end | ||
+ | |||
+ | params['post']['tags'] = tag_array | ||
+ | |||
+ | respond_to do |format| | ||
+ | if @post.update_attributes(params[:post]) | ||
+ | flash[:notice] = 'Post was successfully updated.' | ||
+ | |||
+ | |||
+ | if buttontype == '1' | ||
+ | format.html { redirect_to :action=> "admin",:id => 0 } | ||
+ | else | ||
+ | format.html { redirect_to :action=> redirect_action } | ||
+ | end | ||
+ | |||
+ | format.xml { head :ok } | ||
+ | else | ||
+ | format.html { render :action => "edit" } | ||
+ | format.xml { render :xml => @post.errors, :status => :unprocessable_entity } | ||
+ | end | ||
+ | end | ||
+ | end | ||
+ | </geshi> | ||
+ | </td> | ||
+ | <td> | ||
+ | <geshi lang="ruby"> | ||
+ | def update | ||
+ | @post = Post.find(params[:id]) | ||
+ | submitmode = params['post']['submitmode'] | ||
+ | params['post'].delete('submitmode') | ||
+ | |||
+ | tag_array = [] | ||
+ | |||
+ | |||
+ | for t in params['post']['tags'].split(',') | ||
+ | |||
+ | tag = Tag.new | ||
+ | tag.name = Tag.normalize_name(t) | ||
+ | tag_array << tag | ||
+ | |||
+ | end | ||
+ | |||
+ | |||
+ | |||
+ | if submitmode == 'sc' | ||
+ | redirect_action = 'edit' | ||
+ | elsif submitmode == 'p' | ||
+ | params['post']['published_at'] = Time.now.getutc | ||
+ | redirect_action = 'index' | ||
+ | end | ||
+ | |||
+ | params['post']['tags'] = tag_array | ||
+ | |||
+ | respond_to do |format| | ||
+ | if @post.update_attributes(params[:post]) | ||
+ | flash[:notice] = 'Post was successfully updated.' | ||
+ | |||
+ | |||
+ | if submitmode == 's' | ||
+ | format.html { redirect_to :action=> "admin",:id => 0 } | ||
+ | else | ||
+ | format.html { redirect_to :action=> redirect_action } | ||
+ | end | ||
+ | |||
+ | format.xml { head :ok } | ||
+ | else | ||
+ | format.html { render :action => "edit" } | ||
+ | format.xml { render :xml => @post.errors, :status => :unprocessable_entity } | ||
+ | end | ||
+ | end | ||
+ | end | ||
+ | </geshi> | ||
+ | </td> | ||
+ | </tr> | ||
</table> | </table> |
รุ่นแก้ไขปัจจุบันเมื่อ 07:53, 26 เมษายน 2554
การส่งงาน
รหัสประจำตัว | การบ้าน 1 | การบ้าน 2 | การบ้าน 3 |
50040229 | ส่งแล้ว | ส่งแล้ว | ส่งแล้ว |
50042993 | ส่งแล้ว | ส่งแล้ว | ส่งแล้ว |
50043058 | ส่งแล้ว | ส่งแล้ว | ส่งแล้ว |
50043082 | ส่งแล้ว | ส่งแล้ว | ส่งแล้ว |
50043140 | ส่งแล้ว | ส่งแล้ว | ส่งแล้ว |
50043173 | ส่งแล้ว | ส่งแล้ว | ส่งแล้ว |
50043215 | ส่งแล้ว | ส่งแล้ว | ส่งแล้ว |
50043231 | ส่งแล้ว | ส่งแล้ว | ส่งแล้ว |
50043306 | ส่งแล้ว | ส่งแล้ว | ส่งแล้ว |
51043214 | ส่งช้า | ส่งแล้ว | |
50180249 | ส่งช้า | ส่งช้า | ส่งช้า |
51180198 | ส่งแล้ว | ส่งแล้ว | ส่งแล้ว |
51180503 | ส่งแล้ว | ส่งแล้ว | ส่งแล้ว |
คะแนนการบ้าน 1
รหัสประจำตัว | A (30) | B (10) | C (10) | D (20) | E (10) | F (10) | G (10) | รวม | หมายเหตุ |
50040229 | 30 | 10 | 10 | 10 | 10 | 0 | 0 | 70 |
|
50042993 | 30 | 10 | 2 | 10 | 0 | 0 | 0 | 52 |
|
50043058 | 30 | 10 | 10 | 10 | 0 | 0 | 0 | 60 |
|
50043082 | 30 | 10 | 10 | 20 | 10 | 10 | 10 | 100 | |
50043140 | 30 | 10 | 10 | 10 | 10 | 10 | 10 | 90 |
|
50043173 | 30 | 10 | 10 | 20 | 10 | 0 | 0 | 80 |
|
50043215 | 30 | 10 | 10 | 10 | 10 | 0 | 0 | 70 |
|
50043231 | 30 | 8 | 2 | 10 | 10 | 10 | 10 | 80 |
|
50043306 | 30 | 10 | 10 | 10 | 10 | 10 | 10 | 90 |
|
51043214 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 70 |
|
50180249 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 70 |
|
51180198 | 30 | 10 | 10 | 10 | 10 | 10 | 10 | 90 |
|
51180503 | 30 | 10 | 10 | 10 | 10 | 10 | 10 | 90 |
|
เกณฑ์การให้คะแนน
- A: migration รันผ่าน (30)
- B: จำนวนฟีลด์ (10)
- C: จำนวน record (10)
- D: หน้า search สามารถแสดงข้อมูลได้เมื่อไม่ใส่ข้อมูล search อะไรเลย (20)
- E: Search ฟีลด์ 1 (10)
- F: Search ฟีลด์ 2 (10)
- G: Search ฟีลด์ 3 (10)
คะแนนการบ้าน 2
รหัสนิสิต | A(10) | B(15) | C(15) | D(15) | E(30) | F(15) | รวม | หมายเหตุ |
50040229 | 10 | 0 | 15 | 0 | 20 | 0 | 45 |
|
50042993 | 10 | 15 | 15 | 10 | 25 | 10 | 85 |
|
50043058 | 10 | 15 | 15 | 15 | 30 | 15 | 100 | |
50043082 | 10 | 15 | 15 | 15 | 30 | 15 | 100 | |
50043140 | 10 | 10 | 15 | 15 | 25 | 0 | 75 |
|
50043173 | 10 | 10 | 15 | 15 | 20 | 5 | 75 |
|
50043215 | 10 | 15 | 15 | 15 | 20 | 5 | 80 |
|
50043231 | 10 | 15 | 15 | 15 | 20 | 5 | 80 |
|
50043306 | 10 | 15 | 15 | 15 | 20 | 5 | 80 |
|
51043214 | ||||||||
50180249 | ||||||||
51180198 | 10 | 15 | 15 | 0 | 20 | 10 | 70 |
|
51180503 | 0 | 15 | 10 | 15 | 15 | 5 | 60 |
|
เกณฑ์การให้คะแนน
- A: เตรียมข้อมูลเบื้องต้น migration และ seed (10)
- B: Authentication แต่ละผู้ใช้ (15)
- C: CSS และ form layout ที่เหมาะสม (15)
- D: Field Validations (15)
- E: ความสมบูรณ์ในการทำงานของโปรแกรม (30)
- F: รายงานรายรับรายจ่าย (15)
คะแนนการบ้าน 3
คนที่ได้คะแนน
- 50043058 ได้ 70 คะแนน
- (-4) posts/show: wrong formatting
- (-2) posts/show: wrong comment form redirect
- (-4) posts/index: wrong formatting
- (-2) posts/index: wrong comment link redirect
- (-4) comments/index: wrong formatting
- (-10) tag/show: doesn't follow instruction
- 50043173 ได้ 78 คะแนน
- (-4) posts/show: wrong formatting
- (-4) posts/index: wrong formatting
- (-2) posts/index: wrong comment link redirect
- (-2) comments/index: wrong formatting
- (-4) tag/show: AJAX doesn’t work
- (-2) tag/show: wrong formatting
- (-4) tag/show: display not correct
- 51043214 ได้ 40 คะแนน
- (-60) doesn't do other problem besides 1 and 2
- 51180198 ได้ 70 คะแนน
- (-4) posts/show: wrong formatting
- (-2) posts/index: wrong formatting
- (-2) posts/index: wrong comment link redirect
- (-4) posts/admin: no unpublish
- (-10) posts/edit: doesn't work
- (-2) comments/index: wrong formatting
- (-4) tag/show: AJAX doesn't work
- (-2) tag/show: wrong formatting
- 51180503 ได้ 78 คะแนน
- (-2) posts/show: wrong formatting
- (-2) posts/index: wrong comment link redirect
- (-4) posts/edit: no tag input
- (-6) posts/edit: all redirects are wrong
- (-2) comments/index: wrong formatting
- (-6) tags/show: cannot edit tag, so cannot show if it's correct
- 51080249 ได้ 25 คะแนน
- (-20) late submission
- (-5) setting test doesn't pass
- (-10) post/show doesn't work
- (-10) post/index doesn't work
- (-10) post/admin doesn't work
- (-10) doesn't modify post/edit
- (-4) tag/show: wrong formatting
- (-2) tag/show: AJAX doesn’t work
- (-4) tag/show: display not correct
คนที่ไม่ได้คะแนนเนื่องจากลอกกัน
- 50042993
- 50040229
- 50043082
- 50043140
- 50043215
- 50043231
- 50043360
ฟังก์ชัน update ใน app/controllers/posts_controller.rb (Pattern 1)
50042993 | 50043082 | 50043215 | 50043231 | 50043360 |
<geshi lang="ruby"> def update @post = Post.find(params[:id]) type = params['post']['buttonType'] params['post'].delete('buttonType') tags = params['post']['tags'] arrayTag = [] tags.split(',').each do |tag| t = Tag.new t.name = Tag.normalize_name(tag) arrayTag << t end params['post']['tags'] = arrayTag if type == '1' redirect_action = 'admin' elsif type == '2' redirect_action = 'edit' elsif type == '3' params['post']['published_at'] = Time.now.getutc redirect_action = 'index' end </geshi> |
<geshi lang="ruby"> def update @post = Post.find(params[:id]) buttontype = params['post']['buttontype'] params['post'].delete('buttontype') tag_array = [] params['post']['tags'].split(',').each do |t| tag = Tag.new tag.name = Tag.normalize_name(t) tag_array << tag end if buttontype == '1' redirect_action = 'admin' elsif buttontype == '2' redirect_action = 'edit' elsif buttontype == '3' params['post']['published_at'] = Time.now.getutc redirect_action = 'index' end params['post']['tags'] = tag_array </geshi> |
<geshi lang="ruby"> def update @post = Post.find(params[:id]) type = params['post']['buttonType'] params['post'].delete('buttonType') tags = params['post']['tags'] arrayTag = [] tags.split(',').each do |tag| t = Tag.new t.name = Tag.normalize_name(tag) arrayTag << t end params['post']['tags'] = arrayTag if type == '1' redirect_action = 'admin' elsif type == '2' redirect_action = 'edit' elsif type == '3' params['post']['published_at'] = Time.now.getutc redirect_action = 'index' end </geshi> |
<geshi lang="ruby"> def update @post = Post.find(params[:id]) type = params['post']['buttontype'] params['post'].delete('buttontype') tag_array = [] params['post']['tags'].split(',').each do |t| tag = Tag.new tag.name = Tag.normalize_name(t) tag_array << tag end if type == '1' redirect_action = 'admin' elsif type == '2' redirect_action = 'edit' elsif type == '3' params['post']['published_at'] = Time.now.getutc redirect_action = 'index' end params['post']['tags'] = tag_array </geshi> |
<geshi lang="ruby"> def update @post = Post.find(params[:id]) buttontype = params['post']['buttontype'] params['post'].delete('buttontype') tag_array = [] params['post']['tags'].split(',').each do |t| tag = Tag.new tag.name = Tag.normalize_name(t) tag_array << tag end if buttontype == '1' redirect_action = 'admin' elsif buttontype == '2' redirect_action = 'edit' elsif buttontype == '3' params['post']['published_at'] = Time.now.getutc redirect_action = 'index' end params['post']['tags'] = tag_array </geshi> |
ฟังก์ชัน update ใน app/controllers/posts_controller.rb (Pattern 2)
50040229 | 50043140 |
<geshi lang="ruby"> def update @post = Post.find(params[:id]) buttontype = params['post']['buttontype'] params['post'].delete('buttontype') tag_array = [] for t in params['post']['tags'].split(',') tag = Tag.new tag.name = Tag.normalize_name(t) tag_array << tag end if buttontype == '2' redirect_action = 'edit' elsif buttontype == '3' params['post']['published_at'] = Time.now.getutc redirect_action = 'index' end params['post']['tags'] = tag_array respond_to do |format| if @post.update_attributes(params[:post]) flash[:notice] = 'Post was successfully updated.' if buttontype == '1' format.html { redirect_to :action=> "admin",:id => 0 } else format.html { redirect_to :action=> redirect_action } end format.xml { head :ok } else format.html { render :action => "edit" } format.xml { render :xml => @post.errors, :status => :unprocessable_entity } end end end </geshi> |
<geshi lang="ruby"> def update @post = Post.find(params[:id]) submitmode = params['post']['submitmode'] params['post'].delete('submitmode') tag_array = [] for t in params['post']['tags'].split(',') tag = Tag.new tag.name = Tag.normalize_name(t) tag_array << tag end if submitmode == 'sc' redirect_action = 'edit' elsif submitmode == 'p' params['post']['published_at'] = Time.now.getutc redirect_action = 'index' end params['post']['tags'] = tag_array respond_to do |format| if @post.update_attributes(params[:post]) flash[:notice] = 'Post was successfully updated.' if submitmode == 's' format.html { redirect_to :action=> "admin",:id => 0 } else format.html { redirect_to :action=> redirect_action } end format.xml { head :ok } else format.html { render :action => "edit" } format.xml { render :xml => @post.errors, :status => :unprocessable_entity } end end end </geshi> |