ดูรัฐธรรมนูญ ๕๐ ที่ออกมาแล้วรู้สึกผิดหวัง ส่วนที่เป็นจุดอ่อนของ ๔๐ ไม่ได้แก้ แต่ไปแก้อะไรที่ไม่เข้าท่า และไม่มีเหตุมีผลสนับสนุนเพียงพอ
โดยภาพรวมแล้วต้องบอกว่าฉบับ ๔๐ ยังดีกว่า ขอให้แก้ส่วนที่เปิดช่องให้เกิดการยึดอำนาจอธิปไตยผ่านสภาอย่างที่เคยเกิดขึ้นโดยรัฐบาลทักษิณ และเพิ่มช่องทางการมีส่วนร่วมของภาคประชาชนอย่างเป็นรูปธรรม
แค่สองเรื่องหลักๆก็น่าจะพอ
ปัญหาคือคมช.ไปตั้งธง(ผิดๆ)เอาไว้ว่า ๔๐ คือ ทักษิณ และ ๕๐ คือ คมช. ทำให้เกิดสภาพแบบ "ถอยไม่ได้" และเปิดช่องให้ทักษิณรุกผ่านช่องทางนี้
๔๐ คือ ทักษิณ ทั้งๆที่ ๔๐ โดนชำเราโดยทักษิณ
เศร้านะครับ
ส่วนภาคประชาชน น่าเสียใจเหมือนกันว่าขบวนการประชาธิปไตยบริสุทธิ์ไม่ประกาศตัวเองให้ชัดเจนว่าไม่ยืนข้างเผด็จการรัฐสภา กลับไป "แสวงจุดร่วม" ผิดที่ผิดทาง ทำให้การรณรงค์ต้านการยึดอำนาจไม่สามารถเดินไปได้สะดวกนัก
เพราะถึงคนไม่ชอบเผด็จการทหาร แต่ก็รังเกียจเผด็จการรัฐสภายิ่งกว่า
ไม่ว่าผลจะเป็นอย่างไร เชื่อว่าผู้แพ้ก็เหมือนเดิม
"ประเทศไทย" ครับ
วันศุกร์, สิงหาคม 10, 2550
วันจันทร์, กรกฎาคม 30, 2550
ลุงบุญมีได้ควายคืนก็เลิกได้
แต่ควายข้ายังอยู่เมืองนอกนี่หว่า จะให้ข้าเลิกได้ไง
อิอิ
คนเขียนบทนี่เหลือเกินจริงๆ
อิอิ
คนเขียนบทนี่เหลือเกินจริงๆ
วันพฤหัสบดี, กรกฎาคม 05, 2550
อ่าน Agile Web Development with Rails ( 11 )
ทีนี้มาดูว่าเขาใช้ AJAX ใน Rails กันอย่างไร
ปกติเราใส่ปุ่มเข้าไปใน Rails โดยแทรกโค้ดง่ายๆดังนี้
<%= button_to "Add to Cart" , :action => :add_to_cart, :id => product %>
ซึ่งในเวลาทำงานจะสร้างโค้ด html อย่างนี้
<form method="post" action="/store/add_to_cart/1" class="button-to" >
<input type="submit" value="Add to Cart" />
</form>
เราเอา AJAX มาใช้ตรงนี้โดยการแทนที่แท็ก button_to โดยโค้ดนี้
<% form_remote_tag :url => { :action => :add_to_cart, :id => product } do %>
<%= submit_tag "Add to Cart" %>
<% end %>
คำสั่ง form_remote_tag ใช้สร้างฟอร์ม โดยโค้ดระหว่างบล็อก do - end จะเป็น elements ในฟอร์มที่สร้างขึ้น
นอกจากนี้ เพื่อให้ Rails รับรู้การใช้งาน AJAX เราต้องไปเพิ่มคำสั่ง javascript_include_tag ที่ head ใน app/views/layouts/store.rhtml ดังนี้
<head>
<title>Pragprog Books Online Store</title>
<%= stylesheet_link_tag "depot" , :media => "all" %>
<%= javascript_include_tag :defaults %>
</head>
โค้ดที่เขียนขึ้นจะถูกเรียกโดย add_to_cart แต่เราจะไม่ใช้ app/views/store/add_to_cart.rhtml อันเก่า (ลบทิ้งซะ) แต่จะใช้ app/views/store/add_to_cart.rjs แทน ดังนี้
page.replace_html("cart" , :partial => "cart" , :object => @cart)
เช่นนี้เอง
ปกติเราใส่ปุ่มเข้าไปใน Rails โดยแทรกโค้ดง่ายๆดังนี้
<%= button_to "Add to Cart" , :action => :add_to_cart, :id => product %>
ซึ่งในเวลาทำงานจะสร้างโค้ด html อย่างนี้
<form method="post" action="/store/add_to_cart/1" class="button-to" >
<input type="submit" value="Add to Cart" />
</form>
เราเอา AJAX มาใช้ตรงนี้โดยการแทนที่แท็ก button_to โดยโค้ดนี้
<% form_remote_tag :url => { :action => :add_to_cart, :id => product } do %>
<%= submit_tag "Add to Cart" %>
<% end %>
คำสั่ง form_remote_tag ใช้สร้างฟอร์ม โดยโค้ดระหว่างบล็อก do - end จะเป็น elements ในฟอร์มที่สร้างขึ้น
นอกจากนี้ เพื่อให้ Rails รับรู้การใช้งาน AJAX เราต้องไปเพิ่มคำสั่ง javascript_include_tag ที่ head ใน app/views/layouts/store.rhtml ดังนี้
<head>
<title>Pragprog Books Online Store</title>
<%= stylesheet_link_tag "depot" , :media => "all" %>
<%= javascript_include_tag :defaults %>
</head>
โค้ดที่เขียนขึ้นจะถูกเรียกโดย add_to_cart แต่เราจะไม่ใช้ app/views/store/add_to_cart.rhtml อันเก่า (ลบทิ้งซะ) แต่จะใช้ app/views/store/add_to_cart.rjs แทน ดังนี้
page.replace_html("cart" , :partial => "cart" , :object => @cart)
เช่นนี้เอง
วันพุธ, กรกฎาคม 04, 2550
อ่าน Agile Web Development with Rails ( 10 )
ทีนี้เรื่อง partial templates หรือที่เรียกย่อๆว่า partials
ลองดูโค้ดนี้
<table>
<% for cart_item in @cart.items %>
<tr>
<td><%= cart_item.quantity %>×</td>
<td><%= h(cart_item.title) %></td>
<td class="item-price" ><%= number_to_currency(cart_item.price) %></td>
</tr>
<% end %>
<tr class="total-line" >
<td colspan="2" >Total</td>
<td class="total-cell" ><%= number_to_currency(@cart.total_price) %></td>
</tr>
</table>
เขียนใหม่โดยใช้ partials ได้อย่างนี้
<table>
<%= render(:partial => "cart_item" , :collection => @cart.items) %>
<tr class="total-line" >
<td colspan="2" >Total</td>
<td class="total-cell" ><%= number_to_currency(@cart.total_price) %></td>
</tr>
</table>
ส่วน cart_item จะแยกไว้อีกไฟล์หนึ่ง app/views/store/_cart_item.rhtml
<tr>
<td><%= cart_item.quantity %>×</td>
<td><%= h(cart_item.title) %></td>
<td class="item-price" ><%= number_to_currency(cart_item.price) %></td>
</tr>
คำสั่ง render ในไฟล์แรกจะแสดงผล app/views/store/_cart_item.rhtml (โปรดสังเกตว่ามี _ นำหน้า) โดยจะวนลูปให้อัตโนมัติครับ
วิธีนี้ทำให้เราสามารถเขียน partials ไปแปะแทรกไว้ที่ไหนก็ได้ที่ต้องการได้ทุกเมื่อครับ
ลองดูโค้ดนี้
<table>
<% for cart_item in @cart.items %>
<tr>
<td><%= cart_item.quantity %>×</td>
<td><%= h(cart_item.title) %></td>
<td class="item-price" ><%= number_to_currency(cart_item.price) %></td>
</tr>
<% end %>
<tr class="total-line" >
<td colspan="2" >Total</td>
<td class="total-cell" ><%= number_to_currency(@cart.total_price) %></td>
</tr>
</table>
เขียนใหม่โดยใช้ partials ได้อย่างนี้
<table>
<%= render(:partial => "cart_item" , :collection => @cart.items) %>
<tr class="total-line" >
<td colspan="2" >Total</td>
<td class="total-cell" ><%= number_to_currency(@cart.total_price) %></td>
</tr>
</table>
ส่วน cart_item จะแยกไว้อีกไฟล์หนึ่ง app/views/store/_cart_item.rhtml
<tr>
<td><%= cart_item.quantity %>×</td>
<td><%= h(cart_item.title) %></td>
<td class="item-price" ><%= number_to_currency(cart_item.price) %></td>
</tr>
คำสั่ง render ในไฟล์แรกจะแสดงผล app/views/store/_cart_item.rhtml (โปรดสังเกตว่ามี _ นำหน้า) โดยจะวนลูปให้อัตโนมัติครับ
วิธีนี้ทำให้เราสามารถเขียน partials ไปแปะแทรกไว้ที่ไหนก็ได้ที่ต้องการได้ทุกเมื่อครับ
สมัครสมาชิก:
บทความ (Atom)