<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PUPASOFT BLOG! &#187; Ruby On Rails</title>
	<atom:link href="http://blog.pupasoft.com/category/web-development/ror/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.pupasoft.com</link>
	<description>Proactive Units for Practical Applications</description>
	<lastBuildDate>Tue, 27 Apr 2010 08:31:51 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>aErOnz`Atomic transaction with ActiveRecord</title>
		<link>http://blog.pupasoft.com/2010/01/21/aeronzatomic-transaction-with-activerecord/</link>
		<comments>http://blog.pupasoft.com/2010/01/21/aeronzatomic-transaction-with-activerecord/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 06:49:09 +0000</pubDate>
		<dc:creator>aErOnz`</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Programming Tips]]></category>
		<category><![CDATA[Ruby On Rails]]></category>
		<category><![CDATA[Web Development]]></category>
<category>Atomic Transaction ActiveRecord</category>
		<guid isPermaLink="false">http://blog.pupasoft.com/?p=3441</guid>
		<description><![CDATA[สวัสดีครับ วันนี้จะมาพูดถึงเรื่อง Transaction ว่ามันคืออะไรกัน แล้วมันสำคัญอย่างไรกับชีวิตนักพัฒนาโปรแกรมของเรากัน
สมมติว่า นาย aeronz มีเงินในบัญชีอยู่ 2000 บาท และต้องการจะโอนเงินให้นาย Porza 500บาท (ในการดำเนินการใดๆ ซึ่งที่นี้คือการโอนเงิน จะเรียกว่า 1 transaction ครับ)
โดยในขณะนั้นบัญชีของนาย Porza มีเงินอยู่ 0 บาท
ขั้นตอนการโอนเงินก็คือ
1. หักเงินจากบัญชีนาย aeronz 500 บาท (เหลือ 1500 บาท)
2. เพิ่มเงินให้นาย Porza 500 บาท (ยอดบัญชีนาย Porza จะเป็น 500 บาท)
จะเกิดอะไรขึ้น ถ้า พอระบบทำขั้นตอนที่ 1 เสร็จสิ้นแล้ว แต่ยังไม่ทันที่จะทำขั้นที่ 2 ระบบเกิดมีปัญหาขึ้นมา
หากไม่ได้รับมือกับปัญหานี้ ผลที่เกิดขึ้น คือ
เงินบัญชีนาย aeronz เหลือ 1500 บาท เงินในบัญชีนาย Porza คือ [...]]]></description>
			<content:encoded><![CDATA[<p>สวัสดีครับ วันนี้จะมาพูดถึงเรื่อง Transaction ว่ามันคืออะไรกัน แล้วมันสำคัญอย่างไรกับชีวิตนักพัฒนาโปรแกรมของเรากัน<br />
สมมติว่า นาย aeronz มีเงินในบัญชีอยู่ 2000 บาท และต้องการจะโอนเงินให้นาย Porza 500บาท (ในการดำเนินการใดๆ ซึ่งที่นี้คือการโอนเงิน จะเรียกว่า 1 transaction ครับ)<br />
โดยในขณะนั้นบัญชีของนาย Porza มีเงินอยู่ 0 บาท<br />
ขั้นตอนการโอนเงินก็คือ<br />
1. หักเงินจากบัญชีนาย aeronz 500 บาท (เหลือ 1500 บาท)<br />
2. เพิ่มเงินให้นาย Porza 500 บาท (ยอดบัญชีนาย Porza จะเป็น 500 บาท)</p>
<p>จะเกิดอะไรขึ้น ถ้า พอระบบทำขั้นตอนที่ 1 เสร็จสิ้นแล้ว แต่ยังไม่ทันที่จะทำขั้นที่ 2 ระบบเกิดมีปัญหาขึ้นมา<br />
หากไม่ได้รับมือกับปัญหานี้ ผลที่เกิดขึ้น คือ<br />
เงินบัญชีนาย aeronz เหลือ 1500 บาท เงินในบัญชีนาย Porza คือ 0 บาท </p>
<p>เราต้องทำยังไงหล่ะ ?<br />
ถ้าใครสนใจก็ตามเข้ามาเลยครับ<br />
<span id="more-3441"></span></p>
<p>จากบัญหาข้างต้น สิ่งที่ดีที่สุดที่เราจะทำก็คือหากเราทำ กระบวนการทั้งหมด (ทั้งข้อ 1 และ 2)ไม่สำเร็จ ระบบก็ควรที่จะไม่เปลี่ยนแปลงอะไรเลย<br />
คือ เงินบัญชีนาย aeronz เหลือ 2000 บาท เงินในบัญชีนาย Porza คือ 0 บาท เหมือนเดิม</p>
<p>เพราะฉะนั้น เวลาเราเขียนโปรแกรม หรือทำระบบที่มีการดำเนินการใดๆ (Transaction) เราต้องคำนึงถึงเรื่องนี้ไว้ด้วยครับ<br />
ในการย้อนกลับหากการดำเนินการไม่สำเร็จ เราจะเรียกว่าการ roll back ครับ ซึ่งใน ActiveRecord ของ ROR ก็มีการเขียนโค้ดเพื่อเตรียมป้องกันเหตุการเหล่านี้ดังนี้ครับ</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">aeronz = Account.<span style="color:#9900CC;">find</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">&#41;</span>
porza = Account.<span style="color:#9900CC;">find</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">2</span><span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
Account.<span style="color:#9900CC;">transaction</span> <span style="color:#9966CC; font-weight:bold;">do</span>
  aeronz.<span style="color:#9900CC;">withdrawal</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">500</span><span style="color:#006600; font-weight:bold;">&#41;</span>
  porza.<span style="color:#9900CC;">deposit</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">500</span><span style="color:#006600; font-weight:bold;">&#41;</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p>หรือ</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">aeronz = Account.<span style="color:#9900CC;">find</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">&#41;</span>
porza = Account.<span style="color:#9900CC;">find</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">2</span><span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
<span style="color:#6666ff; font-weight:bold;">ActiveRecord::Base</span>.<span style="color:#9900CC;">transaction</span> <span style="color:#9966CC; font-weight:bold;">do</span>
  aeronz.<span style="color:#9900CC;">withdrawal</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">500</span><span style="color:#006600; font-weight:bold;">&#41;</span>
  porza.<span style="color:#9900CC;">deposit</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">500</span><span style="color:#006600; font-weight:bold;">&#41;</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p>เพราะว่าโมเดลใน RoR มีการสืบทอดมาจาก คลาส ActiveRecord::Base ครับ</p>
<p>ครับ ตอนนี้เราก็ได้ concept ของ Transaction และวิธีการในการ RollBack ข้อมูล เมื่อเกิดปัญหาด้วย ActiveRecord ใน RoR กันแล้วนะครับ<br />
ถ้าใครสนใจ อาจจะไปอ่านเพิ่มเิติมได้ <a href="http://api.rubyonrails.org/classes/ActiveRecord/Transactions/ClassMethods.html#M001851">ที่นี่</a> ครับ<br />
ไว้เจอกันใหม่ครับ</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pupasoft.com/2010/01/21/aeronzatomic-transaction-with-activerecord/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to send sms from ror project?</title>
		<link>http://blog.pupasoft.com/2010/01/07/how-to-send-sms-from-ror-project/</link>
		<comments>http://blog.pupasoft.com/2010/01/07/how-to-send-sms-from-ror-project/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 11:48:07 +0000</pubDate>
		<dc:creator>on_the_way</dc:creator>
				<category><![CDATA[Ruby On Rails]]></category>

		<guid isPermaLink="false">http://blog.pupasoft.com/?p=3384</guid>
		<description><![CDATA[วันนี้นำวิธีการส่ง sms แบบชาวโปรแกรมเมอร์มาฝากกันคร๊ะ ก้อคือว่าแทนที่เราจะส่ง sms จากมือถือก้อเปลี่ยนเป้นเขียนโค้ดขึ้นมาเองแล้วส่งหา&#8230;.กันดีกว่ามั๊ยจ๊ะ
ดูเท่ส์ดีว่าป่ะ&#8230;อิอิ
เริ่มจาก&#8230;(เราใช้ ide netbeans น่ะ..มันง่ายดีน่ะ)
1. สมัคร account http://www.clickatell.com/developers/clickatell_api2.php และเพิ่ม http service ใน account ด้วยจากนั้นก้อจะได้ API key เก็บไว้ดีๆล่ะอันนี้สำคัญน่ะค่ะ
2. install gem=> clickatell
3. สร้างโมลเดล sms.rb เพิ่มโค้ดลงดังนี้
require &#8216;clickatell&#8217;
class SMS
  def initialize(config)
    @config = config
  end
  def create(recipient, message_text)
    api.send_message(recipient, message_text)
  end
  private
   [...]]]></description>
			<content:encoded><![CDATA[<p>วันนี้นำวิธีการส่ง sms แบบชาวโปรแกรมเมอร์มาฝากกันคร๊ะ ก้อคือว่าแทนที่เราจะส่ง sms จากมือถือก้อเปลี่ยนเป้นเขียนโค้ดขึ้นมาเองแล้วส่งหา&#8230;.กันดีกว่ามั๊ยจ๊ะ<br />
ดูเท่ส์ดีว่าป่ะ&#8230;อิอิ<span id="more-3384"></span><br />
เริ่มจาก&#8230;(เราใช้ ide netbeans น่ะ..มันง่ายดีน่ะ)<br />
1. สมัคร account http://www.clickatell.com/developers/clickatell_api2.php และเพิ่ม http service ใน account ด้วยจากนั้นก้อจะได้ API key เก็บไว้ดีๆล่ะอันนี้สำคัญน่ะค่ะ<br />
2. install gem=> clickatell<br />
3. สร้างโมลเดล sms.rb เพิ่มโค้ดลงดังนี้<br />
require &#8216;clickatell&#8217;</p>
<p>class SMS<br />
  def initialize(config)<br />
    @config = config<br />
  end</p>
<p>  def create(recipient, message_text)<br />
    api.send_message(recipient, message_text)<br />
  end</p>
<p>  private<br />
    def api<br />
      @api ||= Clickatell::API.authenticate(<br />
        @config[:api_key],<br />
        @config[:username],<br />
        @config[:password]<br />
      )<br />
    end<br />
end<br />
4. configuration=>environments=>product.rb เพิ่มโค้ดดังนี้<br />
CLICKATELL_CONFIG = YAML.load(File.open(File.join(RAILS_ROOT, &#8216;config&#8217;, &#8216;clickatell.yml&#8217;)))<br />
5. configuration=> clickatell.yml เพิ่มโค้ดดังนี้<br />
api_key: xxxxx<br />
username: mai<br />
password: xxxx<br />
6. configuration=> routes.rb เพิ่มโค้ดดังนี้<br />
ActionController::Routing::Routes.draw do |map|<br />
  map.resource :sms<br />
end<br />
7. หน้า view สร้างหน้าเวบที่ต้องการให้ผู้ใช้กรอกข้อมูลเพื่อส่ง sms ถึงผู้รับ<br />
<% form_tag '/sms', :method => :post do -%><br />
  <label>Enter the recipients mobile number:</label><br />
  <%= text_field_tag "recipient" %><br />
  <label>Enter your message:</label><br />
  <%= text_area_tag "message_text" %><br />
  <%= submit_tag "Send SMS" %><br />
<% end %><br />
8. ส่วนของ controller<br />
class SmsController < ApplicationController<br />
  def create<br />
    sms = SMS.new(CLICKATELL_CONFIG)<br />
    sms.create(params[:recipient], params[:message_text])<br />
    flash[:notice] = "Message sent succesfully!"<br />
    redirect_to :back<br />
  rescue Clickatell::API::Error => e<br />
    flash[:error] = &#8220;Clickatell API error: #{e.message}&#8221;<br />
    redirect_to :back<br />
  end<br />
end<br />
9. เสร็จแล้วจ้าา&#8230;<br />
แหล่งที่มา:</p>
<p>http://lukeredpath.co.uk/blog/sending-sms-messages-from-your-rails-application.html</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pupasoft.com/2010/01/07/how-to-send-sms-from-ror-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>การหาค่า max/min by RoR</title>
		<link>http://blog.pupasoft.com/2010/01/07/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%ab%e0%b8%b2%e0%b8%84%e0%b9%88%e0%b8%b2-maxmin-by-ror/</link>
		<comments>http://blog.pupasoft.com/2010/01/07/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%ab%e0%b8%b2%e0%b8%84%e0%b9%88%e0%b8%b2-maxmin-by-ror/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 05:45:07 +0000</pubDate>
		<dc:creator>on_the_way</dc:creator>
				<category><![CDATA[Ruby On Rails]]></category>

		<guid isPermaLink="false">http://blog.pupasoft.com/?p=3251</guid>
		<description><![CDATA[  วันนี้มีเกร็ดความรู้เล็กๆน้อยๆแต่ยิ่งใหญ่มาฝากเพื่อนๆกันน่ะ ซึ่งเกี่ยวกับการหาค่า max/min บังเอิญว่ามีโอกาสทำโปรเจคแล้วเกี่ยวกับการจัดการฐานข้อมูลที่ค่อนข้างจะซับซ้อนมากมาย แต่ดีที่ใช้ภาษารูบี้เขียนนี่แหล่ะ ทำให้เหนื่อยน้อยลงเยอะเลยค่ะ การหาค่า max/min แบบมีเงื่อนไขในภาษารู้บี้&#8230;
  ปกติโค้ด sql ที่เราใช้ในการหาค่ามากสุดและน้อยสุดคือ
  SELECT MAX(Budget) AS MaxBudget FROM customer where id =1
จากโค้ดเป็นการหาค่ามากสุดเพื่อใส่ใน MaxBudget แต่หากเป็นภาษารูบี้ใช้แค่
 MaxBudget = Budget.maximum(:mark,:conditions=>["id = ?",1])
  SELECT MIN(Budget) AS MinBudget FROM customer
จากโค้ดเป็นการหาค่าน้อยสุดเพื่อใส่ใน MinBudget แต่หากเป็นภาษารูบี้ใช้แค่
 MinBudget = Budget.minimum(:mark,:conditions=>["id = ?",1])
]]></description>
			<content:encoded><![CDATA[<p>  วันนี้มีเกร็ดความรู้เล็กๆน้อยๆแต่ยิ่งใหญ่มาฝากเพื่อนๆกันน่ะ ซึ่งเกี่ยวกับการหาค่า max/min บังเอิญว่ามีโอกาสทำโปรเจคแล้วเกี่ยวกับการจัดการฐานข้อมูลที่ค่อนข้างจะซับซ้อนมากมาย แต่ดีที่ใช้ภาษารูบี้เขียนนี่แหล่ะ ทำให้เหนื่อยน้อยลงเยอะเลยค่ะ การหาค่า max/min แบบมีเงื่อนไขในภาษารู้บี้&#8230;<span id="more-3251"></span><br />
  ปกติโค้ด sql ที่เราใช้ในการหาค่ามากสุดและน้อยสุดคือ<br />
  SELECT MAX(Budget) AS MaxBudget FROM customer where id =1<br />
จากโค้ดเป็นการหาค่ามากสุดเพื่อใส่ใน MaxBudget แต่หากเป็นภาษารูบี้ใช้แค่<br />
 MaxBudget = Budget.maximum(:mark,:conditions=>["id = ?",1])<br />
  SELECT MIN(Budget) AS MinBudget FROM customer<br />
จากโค้ดเป็นการหาค่าน้อยสุดเพื่อใส่ใน MinBudget แต่หากเป็นภาษารูบี้ใช้แค่<br />
 MinBudget = Budget.minimum(:mark,:conditions=>["id = ?",1])</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pupasoft.com/2010/01/07/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%ab%e0%b8%b2%e0%b8%84%e0%b9%88%e0%b8%b2-maxmin-by-ror/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to sent email by using ror?</title>
		<link>http://blog.pupasoft.com/2010/01/07/how-to-sent-email-by-using-ror/</link>
		<comments>http://blog.pupasoft.com/2010/01/07/how-to-sent-email-by-using-ror/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 05:13:22 +0000</pubDate>
		<dc:creator>on_the_way</dc:creator>
				<category><![CDATA[Ruby On Rails]]></category>

		<guid isPermaLink="false">http://blog.pupasoft.com/?p=3242</guid>
		<description><![CDATA[  ทำยังไงดีน่ะ..หากอยากกให้โปรเจคของเราส่งเมลได้ด้วย..คงดูเว่อร์ขึ้นมากอีกนิดจิงป่ะเนี่ย..หุหุ
วันนี้เรามีวิธีการส่งเมลโดยภาษา ror มานำเสนอ อิอิ..Ruby change everything easy.
Follow me &#8230;follow..me.
1. Configuration=>environment.rb ให้เพิ่มโค้ดดังนี้น่ะจ๊ะ(อันนี้เราตั้งค่าไว้เพื่อใช้ใน มอ.น่ะ คัยที่อยู่มอ.ก้อตั้งค่าตามนี้เรยย!!!)
config.action_mailer.smtp_settings = {
    :address        => &#8217;smtp.psu.ac.th&#8217;,
    :port           => 25,
    :domain      [...]]]></description>
			<content:encoded><![CDATA[<p>  ทำยังไงดีน่ะ..หากอยากกให้โปรเจคของเราส่งเมลได้ด้วย..คงดูเว่อร์ขึ้นมากอีกนิดจิงป่ะเนี่ย..หุหุ<br />
วันนี้เรามีวิธีการส่งเมลโดยภาษา ror มานำเสนอ อิอิ..Ruby change everything easy.<span id="more-3242"></span><br />
Follow me &#8230;follow..me.<br />
1. Configuration=>environment.rb ให้เพิ่มโค้ดดังนี้น่ะจ๊ะ(อันนี้เราตั้งค่าไว้เพื่อใช้ใน มอ.น่ะ คัยที่อยู่มอ.ก้อตั้งค่าตามนี้เรยย!!!)<br />
config.action_mailer.smtp_settings = {<br />
    :address        => &#8217;smtp.psu.ac.th&#8217;,<br />
    :port           => 25,<br />
    :domain         => &#8216;psu.ac.th&#8217;,<br />
  }<br />
  config.action_mailer.default_charset = &#8220;utf-8&#8243;<br />
2. Generate mailer ดังนี้<br />
<a href="http://blog.pupasoft.com/wp-content/uploads/2010/01/blog.jpg"><img src="http://blog.pupasoft.com/wp-content/uploads/2010/01/blog-300x98.jpg" alt="" title="blog" width="300" height="98" class="aligncenter size-medium wp-image-3245" /></a><br />
3. ใน notification_mailer.rb เพิ่มโค้ดดังนี้<br />
class SendMail < ActionMailer::Base<br />
  def mailer_test(name_receiver,fullname)<br />
    subject    'ทักทาย'<br />
    recipients name_receiver<br />
    from       'mai@pupasoft.com'<br />
    sent_on    Time.now<br />
    @fullname = fullname</p>
<p>  end</p>
<p>end</p>
<p>mailer_test(name_receiver,fullname) เสมือนเป็นชื่อฟังก์ชันในการเรียกใช้งานจาก controller<br />
name_receiver,fullname เป็นตัวแปรที่ส่งค่ามาจาก controller</p>
<p>@fullname เป็นตัวแปรสำหรับเรียกใช้งานจาก view เพื่อส่งเนื้อหาที่จะแนบไปในอีเมล<br />
4. ใน notification_mailer=>index.html.rb เพิ่มข้อความดังนี้</p>
<p>สวัสดีค่ะคุณ <%=@fullname%><br />
5.finished เป็นไงล่ะง่ายใช่ป่าว..</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pupasoft.com/2010/01/07/how-to-sent-email-by-using-ror/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby can connect Multiple database&#8230;</title>
		<link>http://blog.pupasoft.com/2010/01/07/ruby-can-connect-multiple-database/</link>
		<comments>http://blog.pupasoft.com/2010/01/07/ruby-can-connect-multiple-database/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 04:29:04 +0000</pubDate>
		<dc:creator>on_the_way</dc:creator>
				<category><![CDATA[Ruby On Rails]]></category>

		<guid isPermaLink="false">http://blog.pupasoft.com/?p=3235</guid>
		<description><![CDATA[   เคยเป็นแบบนี้กันบ้างมั๊ย งานเราไม่พอสำหรับ 1 Database วันนี้เรามีวิธีสำหรับการติดต่ออีกฐานข้อมูลหนึ่งในโปรเจคของเราด้วยภาษา Ruby ซึ่งมีขั้นตอนที่ง่ายมากเลยค่ะ
1. Configuration=>database.yml ซึ่งปกติเราจะมีการตั้งค่าไว้ดังนี้
development:
  adapter: jdbcmysql
  encoding: utf8
  database: pps_analysis
  username: root
  password: xxxxx
  host: localhost
test:
      host: localhost
      adapter: mysql
production:
      host: localhost
     [...]]]></description>
			<content:encoded><![CDATA[<p>   เคยเป็นแบบนี้กันบ้างมั๊ย งานเราไม่พอสำหรับ 1 Database วันนี้เรามีวิธีสำหรับการติดต่ออีกฐานข้อมูลหนึ่งในโปรเจคของเราด้วยภาษา Ruby ซึ่งมีขั้นตอนที่ง่ายมากเลยค่ะ<br />
1. Configuration=>database.yml ซึ่งปกติเราจะมีการตั้งค่าไว้ดังนี้<span id="more-3235"></span><br />
development:<br />
  adapter: jdbcmysql<br />
  encoding: utf8<br />
  database: pps_analysis<br />
  username: root<br />
  password: xxxxx<br />
  host: localhost<br />
test:<br />
      host: localhost<br />
      adapter: mysql</p>
<p>production:<br />
      host: localhost<br />
      adapter: mysql<br />
   แต่หากเราต้องการให้โปรเจคที่เราสร้างขึ้นนั้นติดต่อไปยังอีกฐานข้อมูลนึงซึ่งชื่อว่า pps_review_development เราสามารถสร้างการติดต่อไปยังฐานข้อมูลนี้ได้เขียนโค้ดเพิ่มลงไปดังนี้<br />
pixel_development:<br />
  adapter: mysql<br />
  encoding: utf8<br />
  username: root<br />
  password: xxxxx<br />
  database: pps_review_development<br />
2.ในส่วนของ Model ตั้งค่าการติดต่อแต่ละ Table ของ pps_review_development ดังนี้<br />
  สมมติเราต้องการที่จะติดต่อตาราง questions ที่อยู่ใน pps_review_development ให้สร้างmodelขึ้นมา เช่น สร้างโมเดลชื่อ UpdateQuestion และมีโค้ดดังนี้<br />
class UpdateQuestion < ActiveRecord::Base<br />
  establish_connection :pixel_development<br />
  set_table_name &#8220;questions&#8221;<br />
end<br />
3.การนำไปใช้ ก็ให้คิดเสมือนว่าโมเดลนี้เป็นเสมือนตัวแทนของ ActiveRecord ที่ใช้ในการติดต่อฐานข้อมูล pps_review_development และใช้ติดต่อกับตาราง questions เช่นการเรียกใช้ใน Controller<br />
     @question =UpdateQuestion.find(:all)<br />
ให้เรียกใช้แบบนี้ได้เลย<br />
4.เสร็จแล้วจ้าาา..เป็นไง&#8230;ง่ายมากเลยใช่ป่าวว..หุหุ</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pupasoft.com/2010/01/07/ruby-can-connect-multiple-database/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>การใช้ DOM popup ใน rails</title>
		<link>http://blog.pupasoft.com/2010/01/06/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b9%83%e0%b8%8a%e0%b9%89-dom-popup-%e0%b9%83%e0%b8%99-rails/</link>
		<comments>http://blog.pupasoft.com/2010/01/06/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b9%83%e0%b8%8a%e0%b9%89-dom-popup-%e0%b9%83%e0%b8%99-rails/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 09:34:01 +0000</pubDate>
		<dc:creator>liopopo</dc:creator>
				<category><![CDATA[Ruby On Rails]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://blog.pupasoft.com/?p=3063</guid>
		<description><![CDATA[วันนี้เรามาสร้าง Popup menu กันก็ได้มีโอกาสใช้ popup ตัวหนึ่งมาครับ ชื่อ DOM Popup Kit ก่อนอื่ก็ต้องไปโหลด popup.css และ popup.js มาก่อนนะครับ จากเว็บนี้เลยครับ http://www.methods.co.nz/popup/popup.html#toc8 

ซึ่งสามารถดูรายละเอียดเพิ่มเติมได้จากเว็บนี้เลยนะครับ เมื่อเราโหลดมาแล้วในหน้า view ที่เราต้องการจะให้มีหน้าต่าง pop up ขึ้นมา ให้ใส่โค้ดไว้ดังนี้
ในส่วนของหน้า view
&#60;p&#62;&#60;span id=&#8221;test_popup_link&#8221; class=&#8221;popup_link&#8221;&#62;&#60;%= &#8220;เทส Popup&#8221; %&#62;&#60;/span&#62;&#60;/p&#62;
&#60;%= render :partial =&#62; &#8216;popup_test&#8217;%&#62;
จากนั้นต้องทำการสร้าง หน้า popup_testขึ้นมาชื่อว่า    _popup_test.html.erb ขึ้นมาเนื่องจากเราได้ทำการ render จากโค้ดในส่วนของด้านบน
ในส่วนของ  _popup_test.html.erb  ให้ใส่โค้ดไปดังนี้
&#60;div id=&#8221;popup_test&#8221; class=&#8221;popup&#8221; style=&#8221;display:none&#8221;&#62;
&#60;h1&#62;สวัสดี Popup&#60;/h1&#62;
&#60;%= tag :input, :type =&#62; &#8216;button&#8217;, :value =&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>วันนี้เรามาสร้าง Popup menu กันก็ได้มีโอกาสใช้ popup ตัวหนึ่งมาครับ ชื่อ DOM Popup Kit ก่อนอื่ก็ต้องไปโหลด popup.css<tt><tt> และ popup.js มาก่อนนะครับ จากเว็บนี้เลยครับ <a href="http://www.methods.co.nz/popup/popup.html#toc8" target="_blank">http://www.methods.co.nz/popup/popup.html#toc8 </a></tt></tt></p>
<p><span id="more-3063"></span></p>
<p><tt><tt>ซึ่งสามารถดูรายละเอียดเพิ่มเติมได้จากเว็บนี้เลยนะครับ เมื่อเราโหลดมาแล้วในหน้า view ที่เราต้องการจะให้มีหน้าต่าง pop up ขึ้นมา ให้ใส่โค้ดไว้ดังนี้</tt></tt></p>
<p>ในส่วนของหน้า view</p>
<p><strong><em>&lt;p&gt;&lt;span id=&#8221;test_popup_link&#8221; class=&#8221;popup_link&#8221;&gt;&lt;%= &#8220;เทส Popup&#8221; %&gt;&lt;/span&gt;&lt;/p&gt;<br />
&lt;%= render :partial =&gt; &#8216;popup_test&#8217;%&gt;</em></strong></p>
<p>จากนั้นต้องทำการสร้าง หน้า popup_testขึ้นมาชื่อว่า    _popup_test.html.erb ขึ้นมาเนื่องจากเราได้ทำการ render จากโค้ดในส่วนของด้านบน</p>
<p>ในส่วนของ  _popup_test.html.erb  ให้ใส่โค้ดไปดังนี้</p>
<p>&lt;div id=&#8221;popup_test&#8221; class=&#8221;popup&#8221; style=&#8221;display:none&#8221;&gt;</p>
<p>&lt;h1&gt;สวัสดี Popup&lt;/h1&gt;<br />
&lt;%= tag :input, :type =&gt; &#8216;button&#8217;, :value =&gt; &#8216;Cancel&#8217;, :class =&gt; &#8216;popup_closebox&#8217; %&gt;</p>
<p>&lt;/div&gt;<br />
&lt;%= javascript_tag &#8220;new Popup(&#8216;popup_test&#8217;,'test_popup_link&#8217;,{modal:true})&#8221; %&gt;</p>
<p>ก็เท่านี้เราก็จะได้ popup ขึ้นมาโชว์บนหน้าเว็บของเราแล้ว</p>
<p><img class="aligncenter size-full wp-image-3072" title="snap1" src="http://blog.pupasoft.com/wp-content/uploads/2010/01/snap1.jpg" alt="snap1" width="209" height="111" /></p>
<p>ก็สามารถดุรายละเอียดเพิ่มเติมได้ ที่เว็บนี้นะครับ<a href="http://www.methods.co.nz/popup/popup.html#toc8" target="_blank"> http://www.methods.co.nz/popup/popup.html#toc8</a></p>
<p>ยังไงผิดพลาดแต่ประการใดก็ขอโทษด้วยนะครับ  ขอบคุณมากครับ</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pupasoft.com/2010/01/06/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b9%83%e0%b8%8a%e0%b9%89-dom-popup-%e0%b9%83%e0%b8%99-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dynamic menu ใน rails</title>
		<link>http://blog.pupasoft.com/2009/12/08/dynamic-menu-%e0%b9%83%e0%b8%99-rails/</link>
		<comments>http://blog.pupasoft.com/2009/12/08/dynamic-menu-%e0%b9%83%e0%b8%99-rails/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 12:24:18 +0000</pubDate>
		<dc:creator>liopopo</dc:creator>
				<category><![CDATA[Ruby On Rails]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://blog.pupasoft.com/?p=2955</guid>
		<description><![CDATA[ครับมีโอกาสได้ทำพวก Dynamic menu มาเลยเขียนมาแบ่งปันกันนะครับ เพื่อมีประโยชน์กันบ้าง  ก็เริ่มกันเลยดีกว่า คือที่ผมต้องการทำคือการเลือกชุดคำถาม จากนั้นให้มีคำถามในชุดนั้นออกมา ซึ่งจะมีรูปการเรียกใช้ดังโค้ดต่อไปนี้


โค้ดในส่วของหน้า  view  : index.html.erb
ชุดคำถาม :
&#60;%= collection_select(nil,:question_set_id, @question_sets,:id,:title,
{:prompt   =&#62; &#8220;เลือกชุดคำถาม&#8221;},
{:onchange =&#62; &#8220;#{remote_function(:loading  =&#62; &#8220;$(&#8216;indicator&#8217;).show()&#8221;,:complete =&#62; &#8220;$(&#8216;indicator&#8217;).hide()&#8221;,:failure  =&#62; &#8220;alert(&#8216;There was an error. &#8216;)&#8221;,:url  =&#62; {:action =&#62; &#8220;update_question&#8221;},
:with =&#62; &#8220;&#8216;question_set_id=&#8217;+value&#8221;)}&#8221;}) %&#62;
&#60;%= image_tag &#8220;indicator.gif&#8221;, :id =&#62; &#8216;indicator&#8217;, :style =&#62; &#8216;display:none&#8217; %&#62;
เลือกคำถาม :&#60;div id=&#8221;questions&#8221; class=&#8221;a&#8221;&#62;&#60;%= render :partial =&#62; &#8216;questions&#8217;,  bject =&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>ครับมีโอกาสได้ทำพวก Dynamic menu มาเลยเขียนมาแบ่งปันกันนะครับ เพื่อมีประโยชน์กันบ้าง  ก็เริ่มกันเลยดีกว่า คือที่ผมต้องการทำคือการเลือกชุดคำถาม จากนั้นให้มีคำถามในชุดนั้นออกมา ซึ่งจะมีรูปการเรียกใช้ดังโค้ดต่อไปนี้</p>
<p><img class="aligncenter size-full wp-image-2956" title="snap1" src="http://blog.pupasoft.com/wp-content/uploads/2009/12/snap1.jpg" alt="snap1" width="288" height="27" /></p>
<p><span id="more-2955"></span></p>
<p>โค้ดในส่วของหน้า  <strong>view  : index.html.erb</strong></p>
<p>ชุดคำถาม :<br />
&lt;%= collection_select(nil,:question_set_id, @question_sets,:id,:title,<br />
{:prompt   =&gt; &#8220;เลือกชุดคำถาม&#8221;},<br />
{:onchange =&gt; &#8220;#{remote_function(:loading  =&gt; &#8220;$(&#8216;indicator&#8217;).show()&#8221;,:complete =&gt; &#8220;$(&#8216;indicator&#8217;).hide()&#8221;,:failure  =&gt; &#8220;alert(&#8216;There was an error. &#8216;)&#8221;,:url  =&gt; {:action =&gt; &#8220;update_question&#8221;},<br />
:with =&gt; &#8220;&#8216;question_set_id=&#8217;+value&#8221;)}&#8221;}) %&gt;<br />
&lt;%= image_tag &#8220;indicator.gif&#8221;, :id =&gt; &#8216;indicator&#8217;, :style =&gt; &#8216;display:none&#8217; %&gt;</p>
<p>เลือกคำถาม :&lt;div id=&#8221;questions&#8221; class=&#8221;a&#8221;&gt;&lt;%= render :partial =&gt; &#8216;questions&#8217;, <img src='http://blog.pupasoft.com/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> bject =&gt; @questions %&gt;&lt;/div&gt;<br />
&lt;%= submit_tag &#8220;ตกลง&#8221; %&gt;</p>
<p>โดยคำสั่งที่ใช้จะเป็น  collection_select (nil,:question_set_id, @question_sets,:id,:title,) ในส่วน @question_sets</p>
<p>นั้น คือ array ของ object ของ questions ส่วน question_set_id นั้นเป็น id ของ collection นี้ ส่วนของ :title คือให้โชว์ title ออกมา</p>
<p>:prompt เป็นชื่อใน field ที่จะเลือกนั้น ส่วน onchange นั้นมีไว้ขึ้นมาเพื่อเวลาเรียกใช้จะได้มีรูป นาฬิกาหมุนเพื่อแสดงว่ากำลังทำงานอยู่</p>
<p>โดยเราจะต้องมี image tag ไว้เพื่อที่จะสั่ง update field นั้น โดยเมื่อทำการเลือกในชุดคำถามนั้น จะไปเรียกใช่้ action update_question</p>
<p>และส่วนสุดท้ายคือ ส่วนของคำถาม render :partial =&gt; &#8216;questions&#8217;, <img src='http://blog.pupasoft.com/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> bject =&gt; @questions</p>
<p>จะไว้ render คำถามที่อยู่ในชุดคำถามนั้น โดยที่จะอ้างผ่าน tag div</p>
<p>โค้ดในส่วน <strong>controller :index</strong></p>
<p>@question_sets = QuestionSet.all<br />
@questions = Question.all</p>
<p><strong>controller :update_question</strong><br />
@question_set = QuestionSet.find(params[:question_set_id])<br />
questions = @question_set.questions //to find question in set<br />
render :update do |page|<br />
page.replace_html &#8216;questions&#8217;,:partial =&gt; &#8216;questions&#8217;, <img src='http://blog.pupasoft.com/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> bject =&gt; questions<br />
questions.destroy<br />
end<br />
โค้ดในส่วนของ <strong>_question.html.erb</strong><br />
&lt;%= collection_select(nil, :questions,questions, :id, :title,<br />
{:prompt   =&gt; &#8220;เลือกคำถาม&#8221;}) %&gt;</p>
<p>ครับเท่านี้เราก็จะได้ Dynamic menu กันแล้ว</p>
<p><img class="aligncenter size-full wp-image-2957" title="untitled" src="http://blog.pupasoft.com/wp-content/uploads/2009/12/untitled.jpg" alt="untitled" width="310" height="44" />หวังว่าคงมีประโยชน์ในการทำบ้างนะครับ (^^)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pupasoft.com/2009/12/08/dynamic-menu-%e0%b9%83%e0%b8%99-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>rails trick:disable and set default value to text field in rails</title>
		<link>http://blog.pupasoft.com/2009/11/26/rails-trickdisable-and-set-default-value-to-text-field-in-rails/</link>
		<comments>http://blog.pupasoft.com/2009/11/26/rails-trickdisable-and-set-default-value-to-text-field-in-rails/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 12:27:58 +0000</pubDate>
		<dc:creator>Emperor_bear</dc:creator>
				<category><![CDATA[Ruby On Rails]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Rail]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[ruby on rails]]></category>

		<guid isPermaLink="false">http://blog.pupasoft.com/?p=2936</guid>
		<description><![CDATA[
Today I&#8217;ll talk to little tricks about text_field in ruby on rails. let&#8217;s begin&#8230;..

When we usually use text_field in ruby on rails we will use like this:

&#60;%= f.label :name%&#62;
&#60;%= f.text_field :name %&#62;

so the output will be like this:

if we want to give the default value for this text field we can do by insert a [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-thumbnail wp-image-2937" title="ruby on rails" src="http://blog.pupasoft.com/wp-content/uploads/2009/11/ruby_on_rails_logo-150x150.jpg" alt="ruby on rails" width="150" height="150" /></p>
<p>Today I&#8217;ll talk to little tricks about text_field in ruby on rails. let&#8217;s begin&#8230;..</p>
<p><span id="more-2936"></span><br />
When we usually use text_field in ruby on rails we will use like this:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#006600; font-weight:bold;">&lt;%</span>= f.<span style="color:#9900CC;">label</span> <span style="color:#ff3333; font-weight:bold;">:name</span><span style="color:#006600; font-weight:bold;">%&gt;</span>
<span style="color:#006600; font-weight:bold;">&lt;%</span>= f.<span style="color:#9900CC;">text_field</span> <span style="color:#ff3333; font-weight:bold;">:name</span> <span style="color:#006600; font-weight:bold;">%&gt;</span></pre></div></div>

<p>so the output will be like this:<br />
<img class="alignnone size-full wp-image-2943" title="blog_ruby_11" src="http://blog.pupasoft.com/wp-content/uploads/2009/11/blog_ruby_11.png" alt="blog_ruby_11" width="246" height="41" /></p>
<p>if we want to give the default value for this text field we can do by insert a bit code</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#006600; font-weight:bold;">&lt;%</span>= f.<span style="color:#9900CC;">label</span> <span style="color:#ff3333; font-weight:bold;">:name</span><span style="color:#006600; font-weight:bold;">%&gt;</span>
<span style="color:#006600; font-weight:bold;">&lt;%</span>= f.<span style="color:#9900CC;">text_field</span> <span style="color:#ff3333; font-weight:bold;">:name</span> , <span style="color:#ff3333; font-weight:bold;">:value</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">'hello world'</span> <span style="color:#006600; font-weight:bold;">%&gt;</span></pre></div></div>

<p>now the page will include &#8220;hello world&#8221; in text field when it&#8217;s opened<br />
<img class="alignnone size-full wp-image-2944" title="blog_ruby_21" src="http://blog.pupasoft.com/wp-content/uploads/2009/11/blog_ruby_21.png" alt="blog_ruby_21" width="248" height="37" /><br />
then we don&#8217;t want any people to edit our &#8220;hello world&#8221; so</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#006600; font-weight:bold;">&lt;%</span>= f.<span style="color:#9900CC;">label</span> <span style="color:#ff3333; font-weight:bold;">:name</span><span style="color:#006600; font-weight:bold;">%&gt;</span>
<span style="color:#006600; font-weight:bold;">&lt;%</span>= f.<span style="color:#9900CC;">text_field</span> <span style="color:#ff3333; font-weight:bold;">:name</span> , <span style="color:#ff3333; font-weight:bold;">:value</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">'hello world'</span>, <span style="color:#ff3333; font-weight:bold;">:disabled</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> true<span style="color:#006600; font-weight:bold;">%&gt;</span></pre></div></div>

<p><img class="alignnone size-full wp-image-2945" title="blog_ruby_31" src="http://blog.pupasoft.com/wp-content/uploads/2009/11/blog_ruby_31.png" alt="blog_ruby_31" width="250" height="37" /><br />
haha no one can take our &#8220;hello world&#8221; any more.<br />
but we want to keep &#8220;hello world&#8221; in our database so we can request a help from hidded field by</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#006600; font-weight:bold;">&lt;%</span>= f.<span style="color:#9900CC;">label</span> <span style="color:#ff3333; font-weight:bold;">:name</span><span style="color:#006600; font-weight:bold;">%&gt;</span>
<span style="color:#006600; font-weight:bold;">&lt;%</span>= f.<span style="color:#9900CC;">text_field</span> <span style="color:#ff3333; font-weight:bold;">:name</span> , <span style="color:#ff3333; font-weight:bold;">:value</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">'hello world'</span>, <span style="color:#ff3333; font-weight:bold;">:disabled</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> true<span style="color:#006600; font-weight:bold;">%&gt;</span>
<span style="color:#006600; font-weight:bold;">&lt;%</span>= f.<span style="color:#9900CC;">hidden_field</span> <span style="color:#ff3333; font-weight:bold;">:name</span>, <span style="color:#ff3333; font-weight:bold;">:value</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">'hello world'</span><span style="color:#006600; font-weight:bold;">%&gt;</span></pre></div></div>

<p>that is all.<br />
Thank for today see you next time.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pupasoft.com/2009/11/26/rails-trickdisable-and-set-default-value-to-text-field-in-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>การใช้ Ajax ใน RoR</title>
		<link>http://blog.pupasoft.com/2009/11/26/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b9%83%e0%b8%8a%e0%b9%89-ajax-%e0%b9%83%e0%b8%99-ror/</link>
		<comments>http://blog.pupasoft.com/2009/11/26/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b9%83%e0%b8%8a%e0%b9%89-ajax-%e0%b9%83%e0%b8%99-ror/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 08:39:06 +0000</pubDate>
		<dc:creator>liopopo</dc:creator>
				<category><![CDATA[Ruby On Rails]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://blog.pupasoft.com/?p=2931</guid>
		<description><![CDATA[ได้มีโอกาสศึกษาการใช้ ajax บน ROR จึงเขียนมาแบ่งปันครับ งั้นเรามาเริ่มกันเลยดีกว่า
เริ่มต้นเลยเราไปส่วนของ view ที่เราต้องการเรียกใช้ ajax ก่อนนะครับ

จากนั้นก็ทำการใส่โค้ดดังนี้ ในส่วนของ view ของผมคือ index.html.erb นะครับ
 &#60;%= link_to_remote &#8220;เรียกใช้ ajax&#8221;,
:url =&#62; { :action =&#62; &#8220;external&#8221; } %&#62;
&#60;div id =&#8221;field&#8221;&#62;1&#60;/div&#62;
จากโค้ดข้างต้น จะเห็นได้ว่าหากเราใช้ ajax จะเปลี่ยนจาก link_to เป็น link_to_remote แทน จากนั้นก็จะตามด้วย action ที่เราต้องการเรียกใช้  ส่วน div นั้นจะเป็นการ update ไฟล์ที่อยู่ตรง tag div นั้น
เมื่อเสร็จแล้วเราก็ทำการสร้าง action external ขึ้นมา โดยต้องเป็น .rjs นะครับ โดยชื่อต้องตรงกับ action ที่เราเรียกไปนะครับ [...]]]></description>
			<content:encoded><![CDATA[<p>ได้มีโอกาสศึกษาการใช้ ajax บน ROR จึงเขียนมาแบ่งปันครับ งั้นเรามาเริ่มกันเลยดีกว่า</p>
<p>เริ่มต้นเลยเราไปส่วนของ view ที่เราต้องการเรียกใช้ ajax ก่อนนะครับ</p>
<p><span id="more-2931"></span></p>
<p>จากนั้นก็ทำการใส่โค้ดดังนี้ ในส่วนของ view ของผมคือ index.html.erb นะครับ<br />
<em> &lt;%= link_to_remote &#8220;เรียกใช้ ajax&#8221;,<br />
:url =&gt; { :action =&gt; &#8220;external&#8221; } %&gt;<br />
&lt;div id =&#8221;field&#8221;&gt;1&lt;/div&gt;</em><br />
จากโค้ดข้างต้น จะเห็นได้ว่าหากเราใช้ ajax จะเปลี่ยนจาก link_to เป็น link_to_remote แทน จากนั้นก็จะตามด้วย action ที่เราต้องการเรียกใช้  ส่วน div นั้นจะเป็นการ update ไฟล์ที่อยู่ตรง tag div นั้น</p>
<p>เมื่อเสร็จแล้วเราก็ทำการสร้าง action external ขึ้นมา โดยต้องเป็น .rjs นะครับ โดยชื่อต้องตรงกับ action ที่เราเรียกไปนะครับ นั้นคือ external.rjs นั้นเอง ส่วนในไฟล์นี้นั้น จะเขียนโค้ดดังนี้</p>
<p><em>page[:field].replace_html &#8220;Hello Ajax&#8221;</em><br />
เป็นโค้ดที่จะบอกว่าให้ไปอัพเดต field ที่มีชื่อว่า field ในหน้า index.html.erb  โดยให้แทนว่า Hello Ajax เท่านี้เราก็จะได้แล้วนะครับมาดูรูปการเรียกใช้กันนะครับ</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pupasoft.com/2009/11/26/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b9%83%e0%b8%8a%e0%b9%89-ajax-%e0%b9%83%e0%b8%99-ror/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>การสร้าง tab ใน rails ด้วย Rails Widget</title>
		<link>http://blog.pupasoft.com/2009/11/06/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%aa%e0%b8%a3%e0%b9%89%e0%b8%b2%e0%b8%87-tab-%e0%b9%83%e0%b8%99-rails-%e0%b8%94%e0%b9%89%e0%b8%a7%e0%b8%a2-rails-widget/</link>
		<comments>http://blog.pupasoft.com/2009/11/06/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%aa%e0%b8%a3%e0%b9%89%e0%b8%b2%e0%b8%87-tab-%e0%b9%83%e0%b8%99-rails-%e0%b8%94%e0%b9%89%e0%b8%a7%e0%b8%a2-rails-widget/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 07:03:21 +0000</pubDate>
		<dc:creator>liopopo</dc:creator>
				<category><![CDATA[Ruby On Rails]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://blog.pupasoft.com/?p=2774</guid>
		<description><![CDATA[ก่อนอื่นต้องไปทำการดาวน์โหลดตัว plugin นี้ก่อนนะครับ ไปที่ http://github.com/paolodona/rails-widgets ครับ

จากนั้นให้ทำการ generate tabnav main ขึ้นมา(ตรงชื่อ main สามารถเปลี่บยเป็นชื่ออะไรก็ได้) 

วิธีการใช้งานก็คือให้เราไปใส่คำสั่งดังนี้ในหน้าที่ต้องการให้มี Tab ในหน้า view
  &#60;% tabnav :main do %&#62;
      (โค้ดที่ต้องการให้อยู่ใน tab )
    &#60;%= yield %&#62;

เมื่อเราทำการ generate มาแล้วไปที่ app/view/widgets/_main_tabnav.html.erb 
ซึ่งจะสร้างขึ้นมาหลังจากทำการ generate แล้ว 

ตรงส่วนนี่้จะเป็นการแก้ไขชื่อ tab สไตล์ต่างๆ ซึ่งสามาถศึกษาได้จาก http://wiki.github.com/paolodona/rails-widgets/tabnav

ก็เป็นการสร้าง tab ง่ายๆโดยการใช้ plugin กันนะครับ

]]></description>
			<content:encoded><![CDATA[<p>ก่อนอื่นต้องไปทำการดาวน์โหลดตัว plugin นี้ก่อนนะครับ ไปที่<a href="http://github.com/paolodona/rails-widgets" target="_blank"> http://github.com/paolodona/rails-widgets</a> ครับ</p>
<p><span id="more-2774"></span></p>
<p>จากนั้นให้ทำการ generate<code> tabnav main ขึ้นมา(ตรงชื่อ main สามารถเปลี่บยเป็นชื่ออะไรก็ได้) </code></p>
<p><img class="aligncenter size-full wp-image-2775" title="1" src="http://blog.pupasoft.com/wp-content/uploads/2009/11/1.png" alt="1" width="249" height="84" /></p>
<p>วิธีการใช้งานก็คือให้เราไปใส่คำสั่งดังนี้ในหน้าที่ต้องการให้มี Tab ในหน้า view</p>
<pre><code>  &lt;% tabnav :main do %&gt;
      (โค้ดที่ต้องการให้อยู่ใน tab )
    &lt;%= yield %&gt;

เมื่อเราทำการ generate มาแล้วไปที่ </code><em>app/view/widgets/_main_tabnav.html.erb </em>
<code>ซึ่งจะสร้างขึ้นมาหลังจากทำการ generate แล้ว </code>

ตรงส่วนนี่้จะเป็นการแก้ไขชื่อ tab สไตล์ต่างๆ ซึ่งสามาถศึกษาได้จาก <a href="http://wiki.github.com/paolodona/rails-widgets/tabnav" target="_blank">http://wiki.github.com/paolodona/rails-widgets/tabnav</a>
<code>
ก็เป็นการสร้าง tab ง่ายๆโดยการใช้ plugin กันนะครับ
<img class="aligncenter size-full wp-image-2776" title="2" src="http://blog.pupasoft.com/wp-content/uploads/2009/11/2.png" alt="2" width="217" height="110" /></code></pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.pupasoft.com/2009/11/06/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%aa%e0%b8%a3%e0%b9%89%e0%b8%b2%e0%b8%87-tab-%e0%b9%83%e0%b8%99-rails-%e0%b8%94%e0%b9%89%e0%b8%a7%e0%b8%a2-rails-widget/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
