<?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>ไอเอินบล๊อก &#187; basic rails</title>
	<atom:link href="http://www.iearn.in.th/tag/basic-rails/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.iearn.in.th</link>
	<description>Just Play and Just Knowledge</description>
	<lastBuildDate>Fri, 05 Aug 2011 15:10:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>จะอ่าน Rails Api ได้จากไหน?</title>
		<link>http://www.iearn.in.th/2009/05/29/%e0%b8%88%e0%b8%b0%e0%b8%ad%e0%b9%88%e0%b8%b2%e0%b8%99-rails-api-%e0%b9%84%e0%b8%94%e0%b9%89%e0%b8%88%e0%b8%b2%e0%b8%81%e0%b9%84%e0%b8%ab%e0%b8%99/</link>
		<comments>http://www.iearn.in.th/2009/05/29/%e0%b8%88%e0%b8%b0%e0%b8%ad%e0%b9%88%e0%b8%b2%e0%b8%99-rails-api-%e0%b9%84%e0%b8%94%e0%b9%89%e0%b8%88%e0%b8%b2%e0%b8%81%e0%b9%84%e0%b8%ab%e0%b8%99/#comments</comments>
		<pubDate>Fri, 29 May 2009 06:11:36 +0000</pubDate>
		<dc:creator>nolifelover</dc:creator>
				<category><![CDATA[RoR]]></category>
		<category><![CDATA[basic rails]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[rails api]]></category>
		<category><![CDATA[rails class]]></category>
		<category><![CDATA[rails doc]]></category>
		<category><![CDATA[rails method]]></category>
		<category><![CDATA[rails tutorails]]></category>
		<category><![CDATA[start with rails]]></category>

		<guid isPermaLink="false">http://www.iearn.in.th/?p=536</guid>
		<description><![CDATA[สำหรับหลายคนที่ต้องการนำเอา Rails Api มาใช้เพื่อค้นหา method ต่างๆ รวมถึงเพื่อที่จะอ่านตัวอย่างในส่วนของ example ของโค้ดที่เขาได้เขียนไว้ให้ดู หลายคนอาจจะต้องเปิดเน็ตเพื่ออ่าน และปัยหาอยุ่ที่ว่าถ้าเน็ตช้าเราจะทำไง มันก็ช้าครับวันนี้ผมได้เจอ http://www.railsbrain.com/ ซึ่งได้รวบเอา api ทั้งหมดมา zip จากนั้นก็แจกจ่ายครับโดยผมได้โหลดมาเก็บไว้แล้วหากใครสนใจโหลดต่อได้เลย * Rails v2.3.2 Docs view online download * Rails v2.2.2 Docs view online download * Rails v2.1.2 Docs view online download * Rails v2.1.0 Docs view online download * Rails v2.0.5 Docs view online download * Rails [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.iearn.in.th/wp-content/uploads/2009/05/rails-api.jpg"><img src="http://www.iearn.in.th/wp-content/uploads/2009/05/rails-api-300x209.jpg" alt="rails-api" title="rails-api" width="300" height="209" class="aligncenter size-medium wp-image-537" /></a></p>
<p>สำหรับหลายคนที่ต้องการนำเอา Rails Api มาใช้เพื่อค้นหา method ต่างๆ รวมถึงเพื่อที่จะอ่านตัวอย่างในส่วนของ example ของโค้ดที่เขาได้เขียนไว้ให้ดู หลายคนอาจจะต้องเปิดเน็ตเพื่ออ่าน และปัยหาอยุ่ที่ว่าถ้าเน็ตช้าเราจะทำไง มันก็ช้าครับวันนี้ผมได้เจอ<a href="http://www.railsbrain.com/"> http://www.railsbrain.com/</a> ซึ่งได้รวบเอา api ทั้งหมดมา zip จากนั้นก็แจกจ่ายครับโดยผมได้โหลดมาเก็บไว้แล้วหากใครสนใจโหลดต่อได้เลย<br />
<span id="more-536"></span><br />
    * Rails v2.3.2 Docs <a href="http://www.iearn.in.th/api/rails-2.3.2/">view online</a>  <a href="http://www.iearn.in.th/api/railsbrain_rails-2.3.2.zip">download</a><br />
    * Rails v2.2.2 Docs <a href="http://www.iearn.in.th/api/rails-2.2.2/">view online</a>  <a href="http://www.iearn.in.th/api/railsbrain_rails-2.2.2.zip">download</a><br />
    * Rails v2.1.2 Docs <a href="http://www.iearn.in.th/api/rails-2.1.2/">view online</a>  <a href="http://www.iearn.in.th/api/railsbrain_rails-2.1.2.zip">download</a><br />
    * Rails v2.1.0 Docs <a href="http://www.iearn.in.th/api/rails-2.1.0/">view online</a>  <a href="http://www.iearn.in.th/api/railsbrain_rails-2.1.0.zip">download</a><br />
    * Rails v2.0.5 Docs <a href="http://www.iearn.in.th/api/rails-2.0.5/">view online</a>  <a href="http://www.iearn.in.th/api/railsbrain_rails-2.0.5.zip">download</a><br />
    * Rails v2.0.2 Docs <a href="http://www.iearn.in.th/api/rails-2.0.2/">view online</a>  <a href="http://www.iearn.in.th/api/railsbrain_rails-2.0.2.zip">download</a><br />
    * Rails v1.2.6 Docs <a href="http://www.iearn.in.th/api/rails-1.2.6/">view online</a>  <a href="http://www.iearn.in.th/api/railsbrain_rails-1.2.6.zip">download</a><br />
    * Rails v1.2.5 Docs <a href="http://www.iearn.in.th/api/rails-1.2.5/">view online</a>  <a href="http://www.iearn.in.th/api/railsbrain_rails-1.2.5.zip">download</a><br />
    * Rails v1.2.4 Docs <a href="http://www.iearn.in.th/api/rails-1.2.4/">view online</a>  <a href="http://www.iearn.in.th/api/railsbrain_rails-1.2.4.zip">download</a><br />
    * Rails v1.2.3 Docs <a href="http://www.iearn.in.th/api/rails-1.2.3/">view online</a>  <a href="http://www.iearn.in.th/api/railsbrain_rails-1.2.3.zip">download</a><br />
    * Rails v1.2.2 Docs <a href="http://www.iearn.in.th/api/rails-1.2.2/">view online</a>  <a href="http://www.iearn.in.th/api/railsbrain_rails-1.2.2.zip">download</a><br />
    * Rails v1.2.1 Docs <a href="http://www.iearn.in.th/api/rails-1.2.1/">view online</a>  <a href="http://www.iearn.in.th/api/railsbrain_rails-1.2.1.zip">download</a><br />
    * Rails v1.2.0 Docs <a href="http://www.iearn.in.th/api/rails-1.2.0/">view online</a>  <a href="http://www.iearn.in.th/api/railsbrain_rails-1.2.0.zip">download</a><br />
    * Rails v1.1.6 Docs <a href="http://www.iearn.in.th/api/rails-1.1.6/">view online</a>  <a href="http://www.iearn.in.th/api/railsbrain_rails-1.1.6.zip">download</a></p>
<p>ท่านสามารถดาวโหลดได้เลยครับ ขอบคุณ <a href="http://www.railsbrain.com/"> http://www.railsbrain.com/</a>  อย่างแรง</p>

<p class="sayac_bilgi">18 views</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iearn.in.th/2009/05/29/%e0%b8%88%e0%b8%b0%e0%b8%ad%e0%b9%88%e0%b8%b2%e0%b8%99-rails-api-%e0%b9%84%e0%b8%94%e0%b9%89%e0%b8%88%e0%b8%b2%e0%b8%81%e0%b9%84%e0%b8%ab%e0%b8%99/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>เริ่มต้น Rail ง่ายๆด้วย Bort</title>
		<link>http://www.iearn.in.th/2009/05/25/%e0%b9%80%e0%b8%a3%e0%b8%b4%e0%b9%88%e0%b8%a1%e0%b8%95%e0%b9%89%e0%b8%99-rail-%e0%b8%87%e0%b9%88%e0%b8%b2%e0%b8%a2%e0%b9%86%e0%b8%94%e0%b9%89%e0%b8%a7%e0%b8%a2-bort/</link>
		<comments>http://www.iearn.in.th/2009/05/25/%e0%b9%80%e0%b8%a3%e0%b8%b4%e0%b9%88%e0%b8%a1%e0%b8%95%e0%b9%89%e0%b8%99-rail-%e0%b8%87%e0%b9%88%e0%b8%b2%e0%b8%a2%e0%b9%86%e0%b8%94%e0%b9%89%e0%b8%a7%e0%b8%a2-bort/#comments</comments>
		<pubDate>Sun, 24 May 2009 22:26:30 +0000</pubDate>
		<dc:creator>nolifelover</dc:creator>
				<category><![CDATA[RoR]]></category>
		<category><![CDATA[base rails]]></category>
		<category><![CDATA[basic rails]]></category>
		<category><![CDATA[bort]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[rails tutorails]]></category>
		<category><![CDATA[start with rails]]></category>

		<guid isPermaLink="false">http://www.iearn.in.th/?p=528</guid>
		<description><![CDATA[กำลังตามหาโปรแจคนี้อยุ่พอดีหลัวจากที่เห็นแว๊บๆ แต่ว่าจำไม่ได้ว่ามันอยู่เว็บไหน 55 พยายามค้นหาตาม google ประมาณเกือบชมได้ครับ ไปเจอเอาที่  http://www.rails66.com/blog/?p=89 ซึ่งเป็นอันว่าจบการค้นหาครับ แต่ยังไงก็เอามาไว้ในเว็บด้วยละกันสำหรับการลงได้ 2 วิธีครับหากว่ามี git ก็ clone มาแต่หากว่าไม่มีสามารถดาวโหลดธรรมาเป็น zip file มาได้ครับ สำหรับสิ่งที่เจ้า Bort มีให้แล้วคือ RESTful Authentication User Roles Open ID Authentication Will Paginate Rspec &#38; Rspec-rails Exception Notifier Asset Packager บอกได้เลยว่าหากคุณทำ app ธรรมดาทุกตัวจำเป็นต้องมีระบบพวกนี้ครับ หากท่านสนใจตรงไปที่นี้เลยครับ http://github.com/fudgestudios/bort/tree/master 28 views]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.iearn.in.th/wp-content/uploads/2009/05/bort-a-base-rails-apllication.jpg"><img class="aligncenter size-medium wp-image-529" title="bort-a-base-rails-apllication" src="http://www.iearn.in.th/wp-content/uploads/2009/05/bort-a-base-rails-apllication-300x107.jpg" alt="bort-a-base-rails-apllication" width="300" height="107" /></a></p>
<p>กำลังตามหาโปรแจคนี้อยุ่พอดีหลัวจากที่เห็นแว๊บๆ แต่ว่าจำไม่ได้ว่ามันอยู่เว็บไหน 55 พยายามค้นหาตาม google ประมาณเกือบชมได้ครับ ไปเจอเอาที่ <a href="http://www.rails66.com/blog/?p=89"> http://www.rails66.com/blog/?p=89</a> ซึ่งเป็นอันว่าจบการค้นหาครับ แต่ยังไงก็เอามาไว้ในเว็บด้วยละกัน<span id="more-528"></span>สำหรับการลงได้ 2 วิธีครับหากว่ามี git ก็ clone มาแต่หากว่าไม่มีสามารถดาวโหลดธรรมาเป็น zip file มาได้ครับ สำหรับสิ่งที่เจ้า Bort มีให้แล้วคือ</p>
<p style="padding-left: 30px;">
RESTful Authentication<br />
User Roles<br />
Open ID Authentication<br />
Will Paginate<br />
Rspec &amp; Rspec-rails<br />
Exception Notifier<br />
Asset Packager</p>
<p>บอกได้เลยว่าหากคุณทำ app ธรรมดาทุกตัวจำเป็นต้องมีระบบพวกนี้ครับ หากท่านสนใจตรงไปที่นี้เลยครับ <a href="http://github.com/fudgestudios/bort/tree/master">http://github.com/fudgestudios/bort/tree/master</a></p>

<p class="sayac_bilgi">28 views</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iearn.in.th/2009/05/25/%e0%b9%80%e0%b8%a3%e0%b8%b4%e0%b9%88%e0%b8%a1%e0%b8%95%e0%b9%89%e0%b8%99-rail-%e0%b8%87%e0%b9%88%e0%b8%b2%e0%b8%a2%e0%b9%86%e0%b8%94%e0%b9%89%e0%b8%a7%e0%b8%a2-bort/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>เริ่มต้นกับ Ruby On Rails ตอนที่ 4 Scaffold</title>
		<link>http://www.iearn.in.th/2009/03/16/%e0%b9%80%e0%b8%a3%e0%b8%b4%e0%b9%88%e0%b8%a1%e0%b8%95%e0%b9%89%e0%b8%99%e0%b8%81%e0%b8%b1%e0%b8%9a-ruby-on-rails-%e0%b8%95%e0%b8%ad%e0%b8%99%e0%b8%97%e0%b8%b5%e0%b9%88-4-scaffold/</link>
		<comments>http://www.iearn.in.th/2009/03/16/%e0%b9%80%e0%b8%a3%e0%b8%b4%e0%b9%88%e0%b8%a1%e0%b8%95%e0%b9%89%e0%b8%99%e0%b8%81%e0%b8%b1%e0%b8%9a-ruby-on-rails-%e0%b8%95%e0%b8%ad%e0%b8%99%e0%b8%97%e0%b8%b5%e0%b9%88-4-scaffold/#comments</comments>
		<pubDate>Sun, 15 Mar 2009 21:24:20 +0000</pubDate>
		<dc:creator>nolifelover</dc:creator>
				<category><![CDATA[RoR]]></category>
		<category><![CDATA[basic rails]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[rails tutorails]]></category>
		<category><![CDATA[rest]]></category>
		<category><![CDATA[scaffold]]></category>

		<guid isPermaLink="false">http://www.iearn.in.th/?p=403</guid>
		<description><![CDATA[ผมเขียนบทความนี้ตอนที่มาพักผ่อนที่เกาะสิมิลันกับแม่โดยแม่ผมเป็นแม่ครัวมือหนึ่งเลย หากใครจะมาเที่ยวทะเลหรือมาดำน้ำสอบถามผมได้ครับ เพราะว่าจะได้กินอาหารอร่อยๆ ฝีมือแม่ผม มาต่อกันเลยดีกว่าครับ สำหรับวันนี้ผมจะมาแนะนำการใช้งาน Scaffold ของ Rails ซึ่งถือว่าเป็นจุดเด่นของ Rails เลยก็ว่าได้เนื่องจากสามารถทำให้คุณสามารถจัดการข้อมูลแบบ CRUD หรือมาจาก C=Create, R=Read, U=Update, D=Delete โดยจะช่วยให้ชีวิตคุณง่ายขึ้นเยอะครับ แต่ใน version 2.2.2 เนี่ย scaffold จะใช้งานในรูปแบบของ REST โดย REST ผมคงจะขออธิบายในส่วนลึกอีกที่นะครับ โดยผมจะสร้าง scaffold สำหรับการจัดการ User ครับ โดยในฐานข้อมูลจะประกอบไปด้วย Username มีชนิดเป็น String Password มีชนิดเป็น String Firstname มีชนิดเป็น String Lastname มีชนิดเป็น String Age มีชนิดเป็น Integer Birthday มีชนิดเป็น Date โดยผมจะยังคงใช้งานโปรแจค Hello [...]]]></description>
			<content:encoded><![CDATA[<p>ผมเขียนบทความนี้ตอนที่มาพักผ่อนที่เกาะสิมิลันกับแม่โดยแม่ผมเป็นแม่ครัวมือหนึ่งเลย หากใครจะมาเที่ยวทะเลหรือมาดำน้ำสอบถามผมได้ครับ เพราะว่าจะได้กินอาหารอร่อยๆ ฝีมือแม่ผม มาต่อกันเลยดีกว่าครับ สำหรับวันนี้ผมจะมาแนะนำการใช้งาน Scaffold ของ Rails ซึ่งถือว่าเป็นจุดเด่นของ Rails เลยก็ว่าได้เนื่องจากสามารถทำให้คุณสามารถจัดการข้อมูลแบบ CRUD หรือมาจาก C=Create, R=Read, U=Update, D=Delete โดยจะช่วยให้ชีวิตคุณง่ายขึ้นเยอะครับ แต่ใน version 2.2.2 เนี่ย scaffold จะใช้งานในรูปแบบของ REST โดย REST ผมคงจะขออธิบายในส่วนลึกอีกที่นะครับ โดยผมจะสร้าง scaffold สำหรับการจัดการ User ครับ<span id="more-403"></span> โดยในฐานข้อมูลจะประกอบไปด้วย<br />
<code>Username มีชนิดเป็น String<br />
Password มีชนิดเป็น String<br />
Firstname มีชนิดเป็น String<br />
Lastname มีชนิดเป็น String<br />
Age มีชนิดเป็น Integer<br />
Birthday มีชนิดเป็น Date</code><br />
โดยผมจะยังคงใช้งานโปรแจค Hello เหมือนเดิมนะครับ เริ่มต้นกันเลยครับโดยต้องทำความเข้าใจกันก่อนนะครับว่าชนิดข้อมูลที่ใช้จะเป็นชนิดข้อมูลในการเขียนโปรแกรมทั่วไปนะครับเราไม่จำเป็นต้องทราบชนิดข้อมูลของ SQL เลยครับเพียงให้รู้ว่าเป็น String, Integer, Float, Date ที่เหลือ Rails จะมี ActiveRecord จัดการกับฐานข้อมูลให้เองครับ ให้ใช้คำสั่งในการสร้าง Scaffold ครับ<br />
<code>hello&gt;ruby script/generate scaffold user username:string password:string firstname:string lastname:string age:integer birthday:date</code><br />
เราจะเจอกับสิ่งที่ rails generate ออกมาให้ดังนี้ครับ<br />
exists  app/models/<br />
exists  app/controllers/<br />
exists  app/helpers/<br />
create  app/views/users<br />
exists  app/views/layouts/<br />
exists  test/functional/<br />
exists  test/unit/<br />
exists  public/stylesheets/<br />
create  app/views/users/index.html.erb<br />
create  app/views/users/show.html.erb<br />
create  app/views/users/new.html.erb<br />
create  app/views/users/edit.html.erb<br />
create  app/views/layouts/users.html.erb<br />
create  public/stylesheets/scaffold.css<br />
create  app/controllers/users_controller.rb<br />
create  test/functional/users_controller_test.rb<br />
create  app/helpers/users_helper.rb<br />
route  map.resources :users<br />
dependency  model<br />
exists    app/models/<br />
exists    test/unit/<br />
exists    test/fixtures/<br />
create    app/models/user.rb<br />
create    test/unit/user_test.rb<br />
create    test/fixtures/users.yml<br />
create    db/migrate<br />
create    db/migrate/20090312073624_create_users.rb<br />
สิ่งที่สำคัญเลยคือดูตรง create ครับมีการสร้าง model view controller ให้อัตโนมัติรวมถึง css และ test function และจะมีการเพิ่ม route สำหรับ model นี้ด้วยครับ หลังจากนั้นให้ลองทำการ start server เพื่อลองถึงความมหัศจรรย์ครับ<br />
<code>hello&gt;ruby script/server </code><br />
เมื่อเราลองเข้าหน้า http://localhost:3000 เราจะพบ Mysql::Error: Table &#8216;hello_development.users&#8217; doesn&#8217;t exist: SELECT * FROM `users`  เนื่องจากว่าเรายังไม่ได้ทำการสร้าง Table ที่ชื่อว่า users ในฐานข้อมูลครับโดยหากเจอปัญหานี้ให้เราทำการ migrate database ก่อนโดยใช้คำสั่ง<br />
<code>hello&gt;rake db:migrate</code></p>
<p>เมื่อสร้างตารางแล้วให้ start server มาเพื่อดูผลลัพธ์อีกครั้งครับ<br />
<a href="http://www.iearn.in.th/wp-content/uploads/2009/03/4-rails-new-users.jpg"><img class="aligncenter size-medium wp-image-412" title="4-rails-new-users" src="http://www.iearn.in.th/wp-content/uploads/2009/03/4-rails-new-users-300x101.jpg" alt="4-rails-new-users" width="300" height="101" /></a></p>
<p>แล้วลองเข้าไปในส่วนของ new user จะพบกับฟอร์มที่ใช้ในการสร้าง user ใหม่<br />
<a href="http://www.iearn.in.th/wp-content/uploads/2009/03/4-rails-new-user_form.jpg"><img class="aligncenter size-medium wp-image-413" title="4-rails-new-user_form" src="http://www.iearn.in.th/wp-content/uploads/2009/03/4-rails-new-user_form-300x246.jpg" alt="4-rails-new-user_form" width="300" height="246" /></a></p>
<p>หลังจากนั้นให้ทดลองเพิ่มข้อมูลไปดูครับ<br />
<a href="http://www.iearn.in.th/wp-content/uploads/2009/03/4-rails-new-user-complete.jpg"><img class="aligncenter size-medium wp-image-414" title="4-rails-new-user-complete" src="http://www.iearn.in.th/wp-content/uploads/2009/03/4-rails-new-user-complete-300x160.jpg" alt="4-rails-new-user-complete" width="300" height="160" /></a><br />
เมื่อเพิ่มข้อมูลแล้วสามารถแก้ไขข้อมูลรวมถึงแสดงข้อมูลของ User ทั้งหมดได้ครับ</p>
<p>ดาวโหลดโค้ด <a href="http://www.iearn.in.th/wp-download/hello-tutorails-4.rar">hello-tutorails-4.rar</a></p>

<p class="sayac_bilgi">118 views</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iearn.in.th/2009/03/16/%e0%b9%80%e0%b8%a3%e0%b8%b4%e0%b9%88%e0%b8%a1%e0%b8%95%e0%b9%89%e0%b8%99%e0%b8%81%e0%b8%b1%e0%b8%9a-ruby-on-rails-%e0%b8%95%e0%b8%ad%e0%b8%99%e0%b8%97%e0%b8%b5%e0%b9%88-4-scaffold/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>เริ่มต้นกับ Ruby On Rails ตอนที่ 3 Make Web Dynamic</title>
		<link>http://www.iearn.in.th/2009/03/11/%e0%b9%80%e0%b8%a3%e0%b8%b4%e0%b9%88%e0%b8%a1%e0%b8%95%e0%b9%89%e0%b8%99%e0%b8%81%e0%b8%b1%e0%b8%9a-ruby-on-rails-%e0%b8%95%e0%b8%ad%e0%b8%99%e0%b8%97%e0%b8%b5%e0%b9%88-3-make-web-dynamic/</link>
		<comments>http://www.iearn.in.th/2009/03/11/%e0%b9%80%e0%b8%a3%e0%b8%b4%e0%b9%88%e0%b8%a1%e0%b8%95%e0%b9%89%e0%b8%99%e0%b8%81%e0%b8%b1%e0%b8%9a-ruby-on-rails-%e0%b8%95%e0%b8%ad%e0%b8%99%e0%b8%97%e0%b8%b5%e0%b9%88-3-make-web-dynamic/#comments</comments>
		<pubDate>Wed, 11 Mar 2009 01:51:39 +0000</pubDate>
		<dc:creator>nolifelover</dc:creator>
				<category><![CDATA[RoR]]></category>
		<category><![CDATA[basic rails]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[rails tutorails]]></category>
		<category><![CDATA[start with rails]]></category>

		<guid isPermaLink="false">http://www.iearn.in.th/?p=388</guid>
		<description><![CDATA[สำหรับบทความในส่วนของก่อนหน้านี้ผมได้แนะนำการสร้าง controller และ action เบื้องต้นมาแล้วซึ่งสามารถอ่านได้จาก เริ่มต้นกับ Ruby On Rails ตอนที่ 2 Hello World With Rails สำหรับในบทความนี่้ผมจะมาแนะนำการทำให้บทความของคุณเป็น web dynamic โดยการใช้ rails กันครับ แนะนำการใช้งาน ruby syntax สำหรับผู้ที่ยังไม่แคยได้ลองเขียน rails จริงๆ อาจจะเกิออาการงงระว่าง กับ ว่ามันต่างกันอย่างไร ซึ่งในที่นี้ผมขออธฺบายคร่าวๆ ละกันนะครับ จะเป็นการใช้ในกรณีที่เราไม่ต้องการให้สิ่งที่อยู่คร่อมด้วยเครื่องหมายนี้แสดงออกมาเป็น html หรือพูดง่ายๆ ว่าไม่ต้องการให้ผู้ใช้งานเห็นแต่หากว่าเปลี่ยนมาเป็น จะืำให้ผู้ใช้มองเห็นเนื่องจากจำมีการสร้าง html สำหรับให้ browser นำไปแสดงผลด้วย เราลองมาดูผลกันครับ ให้ทำการแก้ไขไฟล์ helloappviewssayhello.erb โดยการเพิ่มโค้ดตามนี้ครับ 9 10 11 12 13 14 &#60;p&#62; &#60;ul&#62; &#60;li&#62;Addition:&#60;%1+1%&#62;&#60;/li&#62; &#60;li&#62;Addition:&#60;%=1+1%&#62;&#60;/li&#62; [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.iearn.in.th/wp-content/uploads/2009/03/3-rails-syntax.jpg"><img src="http://www.iearn.in.th/wp-content/uploads/2009/03/3-rails-syntax-300x113.jpg" alt="3-rails-syntax" title="3-rails-syntax" width="300" height="113" class="aligncenter size-medium wp-image-391" /></a><br />
สำหรับบทความในส่วนของก่อนหน้านี้ผมได้แนะนำการสร้าง controller และ action เบื้องต้นมาแล้วซึ่งสามารถอ่านได้จาก <a href="http://www.iearn.in.th/2009/03/10/%E0%B9%80%E0%B8%A3%E0%B8%B4%E0%B9%88%E0%B8%A1%E0%B8%95%E0%B9%89%E0%B8%99%E0%B8%81%E0%B8%B1%E0%B8%9A-ruby-on-rails-%E0%B8%95%E0%B8%AD%E0%B8%99%E0%B8%97%E0%B8%B5%E0%B9%88-2-hello-world-with-rails/">เริ่มต้นกับ Ruby On Rails ตอนที่ 2 Hello World With Rails</a> สำหรับในบทความนี่้ผมจะมาแนะนำการทำให้บทความของคุณเป็น web dynamic โดยการใช้ rails กันครับ<br />
<span id="more-388"></span></p>
<h3>แนะนำการใช้งาน ruby syntax<br />
<h3>
สำหรับผู้ที่ยังไม่แคยได้ลองเขียน rails จริงๆ อาจจะเกิออาการงงระว่าง<br />
<code><%%> กับ <%=%></code><br />
ว่ามันต่างกันอย่างไร ซึ่งในที่นี้ผมขออธฺบายคร่าวๆ ละกันนะครับ <%%> จะเป็นการใช้ในกรณีที่เราไม่ต้องการให้สิ่งที่อยู่คร่อมด้วยเครื่องหมายนี้แสดงออกมาเป็น html หรือพูดง่ายๆ ว่าไม่ต้องการให้ผู้ใช้งานเห็นแต่หากว่าเปลี่ยนมาเป็น <%=%> จะืำให้ผู้ใช้มองเห็นเนื่องจากจำมีการสร้าง html สำหรับให้ browser นำไปแสดงผลด้วย เราลองมาดูผลกันครับ ให้ทำการแก้ไขไฟล์ helloappviewssayhello.erb โดยการเพิ่มโค้ดตามนี้ครับ</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>9
10
11
12
13
14
</pre></td><td class="code"><pre class="rails" style="font-family:monospace;">    &lt;p&gt;
	&lt;ul&gt;
		&lt;li&gt;Addition:<span style="color:#006600; font-weight:bold;">&lt;%</span>1<span style="color:#006600; font-weight:bold;">+</span><span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">%&gt;</span>&lt;/li&gt;
		&lt;li&gt;Addition:<span style="color:#006600; font-weight:bold;">&lt;%</span>=<span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">+</span><span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">%&gt;</span>&lt;/li&gt;
	&lt;/ul&gt;
    &lt;/p&gt;</pre></td></tr></table></div>

<p><a href="http://www.iearn.in.th/wp-content/uploads/2009/03/3-rails-syntax.jpg"><img src="http://www.iearn.in.th/wp-content/uploads/2009/03/3-rails-syntax.jpg" alt="3-rails-syntax" title="3-rails-syntax" width="413" height="156" class="aligncenter size-full wp-image-391" /></a><br />
เมื่อได้เข้าไปยัง http://localhost:3000/say/hello เราพบว่าในบรรทัดแรกจะไม่มีการนำค่าที่ได้จากการคำนวนออกมาแสดงผลเนื่องจากว่าการใช้เครื่องหมาย <%%> แต่ในบรรทัดถัดมามีการแสดงค่าที่ได้จากการคำนวนคือ 2 เนื่องจากการใช้งาน <%=%></p>
<h3>การวนลูปที่มีหลากหลาย<br />
<h3>
ในกรณีที่เราต้องการให้ app ของเราแสดงผลซ้ำอย่างเช่นแสดงผลคำว่า Hello Rails หลายๆ ครั้งเราสามารถเขียนโค้ดได้หลายวิธีมากตามความถนัดของเรา ซึ่งในแต่ละอันจะหมายถึงการแสดง Hello Rails!.. สามครั้งหมด</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
</pre></td><td class="code"><pre class="rails" style="font-family:monospace;">    &lt;p&gt;
	<span style="color:#006600; font-weight:bold;">&lt;%</span> <span style="color:#006666;">3</span>.<span style="color:#9900CC;">times</span> do<span style="color:#006600; font-weight:bold;">%&gt;</span>
		Hello Rails!..&lt;br/&gt;
	<span style="color:#006600; font-weight:bold;">&lt;%</span>end<span style="color:#006600; font-weight:bold;">%&gt;</span>
    &lt;p&gt;
    &lt;p&gt;
	<span style="color:#006600; font-weight:bold;">&lt;%</span> <span style="color:#9966CC; font-weight:bold;">for</span> i <span style="color:#9966CC; font-weight:bold;">in</span> <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">1</span>..<span style="color:#006666;">3</span><span style="color:#006600; font-weight:bold;">&#41;</span> do<span style="color:#006600; font-weight:bold;">%&gt;</span>
		Hello Rails!..&lt;br/&gt;
	<span style="color:#006600; font-weight:bold;">&lt;%</span>end<span style="color:#006600; font-weight:bold;">%&gt;</span>
    &lt;p&gt;
    &lt;p&gt;
	<span style="color:#006600; font-weight:bold;">&lt;%</span> <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">1</span>..<span style="color:#006666;">3</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#5A0A0A; font-weight:bold;">each</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>i<span style="color:#006600; font-weight:bold;">|%&gt;</span>
		Hello Rails!..&lt;br/&gt;
	<span style="color:#006600; font-weight:bold;">&lt;%</span>end<span style="color:#006600; font-weight:bold;">%&gt;</span>
    &lt;p&gt;
    &lt;p&gt;
	<span style="color:#006600; font-weight:bold;">&lt;%</span> <span style="color:#006666;">1</span>.<span style="color:#9900CC;">upto</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">3</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>i<span style="color:#006600; font-weight:bold;">|%&gt;</span>
		Hello Rails!..&lt;br/&gt;
	<span style="color:#006600; font-weight:bold;">&lt;%</span>end<span style="color:#006600; font-weight:bold;">%&gt;</span>
    &lt;p&gt;
     &lt;p&gt;
	<span style="color:#006600; font-weight:bold;">&lt;%</span> <span style="color:#006666;">3</span>.<span style="color:#9900CC;">downto</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> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>i<span style="color:#006600; font-weight:bold;">|%&gt;</span>
		Hello Rails!..&lt;br/&gt;
	<span style="color:#006600; font-weight:bold;">&lt;%</span>end<span style="color:#006600; font-weight:bold;">%&gt;</span>
    &lt;p&gt;</pre></td></tr></table></div>

<h3>สนุกกับเวลา<br />
<h3>
ใน rails ผมบอกเลยว่าทุกสิ่งทุกอย่างที่เขียนลงไปในโปรแกรมแถบจะเหมือนภาษาของมนุษย์ครับ ซึ่งในเรื่องเวลาก็เหมือนกันเราลองมาเล่นกับเวลาดูกันเลยครับ ให้แก้ไขโค้ดเพิ่มเติมในส่วนของ  helloappviewssayhello.erb  โดยเพิ่มโค้ดในส่วนด้านล่างลงไป</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>40
41
42
43
44
45
46
47
48
49
50
51
52
</pre></td><td class="code"><pre class="rails" style="font-family:monospace;">    &lt;p&gt;
	Playing wirh Time
	&lt;ul&gt;
		&lt;li&gt;Time.now <span style="color:#006600; font-weight:bold;">&lt;%</span>=<span style="color:#CC00FF; font-weight:bold;">Time</span>.<span style="color:#9900CC;">now</span><span style="color:#006600; font-weight:bold;">%&gt;</span>&lt;/li&gt;
		&lt;li&gt;1.hours.ago <span style="color:#006600; font-weight:bold;">&lt;%</span>=<span style="color:#006666;">1</span>.<span style="color:#9900CC;">hours</span>.<span style="color:#9900CC;">ago</span><span style="color:#006600; font-weight:bold;">%&gt;</span>&lt;/li&gt;
		&lt;li&gt;1.hours.from_now <span style="color:#006600; font-weight:bold;">&lt;%</span>=<span style="color:#006666;">1</span>.<span style="color:#9900CC;">hours</span>.<span style="color:#9900CC;">from_now</span><span style="color:#006600; font-weight:bold;">%&gt;</span>&lt;/li&gt;
		&lt;li&gt;Time.now.at_beginning_of_day <span style="color:#006600; font-weight:bold;">&lt;%</span>=<span style="color:#CC00FF; font-weight:bold;">Time</span>.<span style="color:#9900CC;">now</span>.<span style="color:#9900CC;">at_beginning_of_day</span><span style="color:#006600; font-weight:bold;">%&gt;</span>&lt;/li&gt;
		&lt;li&gt;Time.now.at_beginning_of_month <span style="color:#006600; font-weight:bold;">&lt;%</span>=<span style="color:#CC00FF; font-weight:bold;">Time</span>.<span style="color:#9900CC;">now</span>.<span style="color:#9900CC;">at_beginning_of_month</span><span style="color:#006600; font-weight:bold;">%&gt;</span>&lt;/li&gt;
		&lt;li&gt;Time.now.at_beginning_of_year <span style="color:#006600; font-weight:bold;">&lt;%</span>=<span style="color:#CC00FF; font-weight:bold;">Time</span>.<span style="color:#9900CC;">now</span>.<span style="color:#9900CC;">at_beginning_of_year</span><span style="color:#006600; font-weight:bold;">%&gt;</span>&lt;/li&gt;
		&lt;li&gt;Time.now.at_midnight<span style="color:#006600; font-weight:bold;">&lt;%</span>=<span style="color:#CC00FF; font-weight:bold;">Time</span>.<span style="color:#9900CC;">now</span>.<span style="color:#9900CC;">at_midnight</span><span style="color:#006600; font-weight:bold;">%&gt;</span>&lt;/li&gt;
		&lt;li&gt;Time.now.to_date <span style="color:#006600; font-weight:bold;">&lt;%</span>=<span style="color:#006666;">1</span>.<span style="color:#9900CC;">hours</span>.<span style="color:#9900CC;">ago</span><span style="color:#006600; font-weight:bold;">%&gt;</span>&lt;/li&gt;
	&lt;/ul&gt;
    &lt;p&gt;</pre></td></tr></table></div>

<p><a href="http://www.iearn.in.th/wp-content/uploads/2009/03/3-rails-playing-with-time.jpg"><img src="http://www.iearn.in.th/wp-content/uploads/2009/03/3-rails-playing-with-time.jpg" alt="3-rails-playing-with-time" title="3-rails-playing-with-time" width="508" height="213" class="aligncenter size-full wp-image-393" /></a><br />
จากโค้ดในส่วนนี้จะเห็นได้ว่าในการเขียนโค้ดที่เกี่ยวกับเวลาทุกบรรทัดที่ได้ยกตัวอย่างมีลักษณะคล้ายกับภาษามานุษย์มาก เช่นผมต้องการเวลา 1 ชั่วโมงก่อนสามารถใช้ 1.hours.ago ได้เลย</p>
<h3>Controller และ View<br />
<h3>
ในกรณีที่เราต้องการส่งค่าที่ได้จากการคำนวนหรือประมวณผลไปให้ view แสดงเราสามารถใช้เครื่องหมาย @ นำหน้าได้จะืำืำทำให้ view สามารถเห็นตัวแปรนั้นที่ controller สร้างได้ ตัวอย่างให้ทำการแก้ไข helloappcontrollerssay_controller.rb</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="rails" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">class</span> SayController <span style="color:#006600; font-weight:bold;">&lt;</span> ApplicationController
	<span style="color:#9966CC; font-weight:bold;">def</span> hello
		<span style="color:#0066ff; font-weight:bold;">@time</span> = <span style="color:#CC00FF; font-weight:bold;">Time</span>.<span style="color:#9900CC;">now</span>
	<span style="color:#9966CC; font-weight:bold;">end</span>
	<span style="color:#9966CC; font-weight:bold;">def</span> bye
	<span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></td></tr></table></div>

<p>จากนั้นให้เราทำการเพิ่มโค้ดในส่วนของการแสดงผลของ action hello โดยแก้ไขไฟล์ helloappviewssayhello.erb ดังนี้</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>53
54
55
56
57
58
59
60
61
62
63
64
</pre></td><td class="code"><pre class="rails" style="font-family:monospace;">    &lt;p&gt;
	Playing with @time
	&lt;ul&gt;
		&lt;li&gt;@time <span style="color:#006600; font-weight:bold;">&lt;%</span>= <span style="color:#0066ff; font-weight:bold;">@time</span><span style="color:#006600; font-weight:bold;">%&gt;</span>&lt;/li&gt;
		&lt;li&gt;@time.ago(1.hours) <span style="color:#006600; font-weight:bold;">&lt;%</span>= <span style="color:#0066ff; font-weight:bold;">@time</span>.<span style="color:#5A0A0A; font-weight:bold;">ago</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">1</span>.<span style="color:#9900CC;">hours</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">%&gt;</span>&lt;/li&gt;
		&lt;li&gt;@time.at_beginning_of_day <span style="color:#006600; font-weight:bold;">&lt;%</span>=@time.<span style="color:#9900CC;">at_beginning_of_day</span><span style="color:#006600; font-weight:bold;">%&gt;</span>&lt;/li&gt;
		&lt;li&gt;@time.at_beginning_of_month <span style="color:#006600; font-weight:bold;">&lt;%</span>=@time.<span style="color:#9900CC;">at_beginning_of_month</span><span style="color:#006600; font-weight:bold;">%&gt;</span>&lt;/li&gt;
		&lt;li&gt;@time.at_beginning_of_year <span style="color:#006600; font-weight:bold;">&lt;%</span>=@time.<span style="color:#9900CC;">at_beginning_of_year</span><span style="color:#006600; font-weight:bold;">%&gt;</span>&lt;/li&gt;
		&lt;li&gt;@time.at_midnight<span style="color:#006600; font-weight:bold;">&lt;%</span>=@time.<span style="color:#9900CC;">at_midnight</span><span style="color:#006600; font-weight:bold;">%&gt;</span>&lt;/li&gt;
		&lt;li&gt;@time.to_date <span style="color:#006600; font-weight:bold;">&lt;%</span>=@time.<span style="color:#9900CC;">to_date</span><span style="color:#006600; font-weight:bold;">%&gt;</span>&lt;/li&gt;
	&lt;/ul&gt;
    &lt;p&gt;</pre></td></tr></table></div>

<p><a href="http://www.iearn.in.th/wp-content/uploads/2009/03/3-rails-playing-with-time1.jpg"><img src="http://www.iearn.in.th/wp-content/uploads/2009/03/3-rails-playing-with-time1.jpg" alt="3-rails-playing-with-time1" title="3-rails-playing-with-time1" width="521" height="403" class="aligncenter size-full wp-image-394" /></a><br />
จากการแสดงผลเราพบว่าตัวแปร @time ที่ส่งมาจาก Controller สามารถใช้งานได้ใน view โดยให้ผลการแสดงเหมือนกันกับการใช้ Time.now</p>
<p>ไฟล์ <a href="http://www.iearn.in.th/wp-download/hello-tutorails-3.rar">hello-tutorails-3.rar</a></p>

<p class="sayac_bilgi">108 views</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iearn.in.th/2009/03/11/%e0%b9%80%e0%b8%a3%e0%b8%b4%e0%b9%88%e0%b8%a1%e0%b8%95%e0%b9%89%e0%b8%99%e0%b8%81%e0%b8%b1%e0%b8%9a-ruby-on-rails-%e0%b8%95%e0%b8%ad%e0%b8%99%e0%b8%97%e0%b8%b5%e0%b9%88-3-make-web-dynamic/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>เริ่มต้นกับ Ruby On Rails ตอนที่ 2 Hello World With Rails</title>
		<link>http://www.iearn.in.th/2009/03/10/%e0%b9%80%e0%b8%a3%e0%b8%b4%e0%b9%88%e0%b8%a1%e0%b8%95%e0%b9%89%e0%b8%99%e0%b8%81%e0%b8%b1%e0%b8%9a-ruby-on-rails-%e0%b8%95%e0%b8%ad%e0%b8%99%e0%b8%97%e0%b8%b5%e0%b9%88-2-hello-world-with-rails/</link>
		<comments>http://www.iearn.in.th/2009/03/10/%e0%b9%80%e0%b8%a3%e0%b8%b4%e0%b9%88%e0%b8%a1%e0%b8%95%e0%b9%89%e0%b8%99%e0%b8%81%e0%b8%b1%e0%b8%9a-ruby-on-rails-%e0%b8%95%e0%b8%ad%e0%b8%99%e0%b8%97%e0%b8%b5%e0%b9%88-2-hello-world-with-rails/#comments</comments>
		<pubDate>Tue, 10 Mar 2009 02:02:38 +0000</pubDate>
		<dc:creator>nolifelover</dc:creator>
				<category><![CDATA[RoR]]></category>
		<category><![CDATA[basic rails]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[rails tutorails]]></category>
		<category><![CDATA[start with rails]]></category>

		<guid isPermaLink="false">http://www.iearn.in.th/?p=377</guid>
		<description><![CDATA[ก่อนที่คุณจะเริ่มการสร้าง Hello World Application โดยการใช้ Rails นั้นคุณต้องลง Rails เรียบร้อยแล้วซึ่งหากว่าคุณยังไม่ได้ลงสามารถหาอ่านได้ที่ เริ่มต้นกับ Ruby On Rails ตอนที่ 1 Install Rails on Windows แต่หากว่าได้ทำการติดตั้งแล้ว เรามาเริ่มต้น rails application ตัวแรกด้วย Hello World กันเลยครับ ขั้นที่ 1 สร้างโปรแจค Rails Application เริ่มแรกให้เราเข้าไปยัง folder ที่ต้องการเก็บโปรแจคนี้เอาไว้ครับในที่นี้ผมต้องการเก็บไว้ที่ E:Tutorialrails&#62; จากนั้นให้พิมพ์คำสั่ง rails hello โดยคำสั่งนี้คือการสร้างโปรแจคชื่อว่า hello ขึ้นมา โดยจะมีการสร้างไฟล์ที่จำเป็นสำหรับโปรแจคนี้หลายไฟล์โดยมีรายละเอียดดังนี้ เมื่อสร้างโปรแจค hello จะพบ folder ใหม่ใน rails คือ folder hello วึ่งเป็น folder ของโปรแจคโดยโครงสร้างของ [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.iearn.in.th/wp-content/uploads/2009/03/2-rails-create-project.jpg"><img class="aligncenter size-medium wp-image-378" title="2-rails-create-project" src="http://www.iearn.in.th/wp-content/uploads/2009/03/2-rails-create-project-300x151.jpg" alt="2-rails-create-project" width="300" height="151" /></a>ก่อนที่คุณจะเริ่มการสร้าง Hello World Application โดยการใช้ Rails นั้นคุณต้องลง Rails เรียบร้อยแล้วซึ่งหากว่าคุณยังไม่ได้ลงสามารถหาอ่านได้ที่ <a title="Permanent Link to เริ่มต้นกับ Ruby On Rails ตอนที่ 1 Install Rails on Windows" rel="bookmark" href="../2009/03/09/%e0%b9%80%e0%b8%a3%e0%b8%b4%e0%b9%88%e0%b8%a1%e0%b8%95%e0%b9%89%e0%b8%99%e0%b8%81%e0%b8%b1%e0%b8%9a-ruby-on-rails-%e0%b8%95%e0%b8%ad%e0%b8%99%e0%b8%97%e0%b8%b5%e0%b9%88-1-install-rails-on-windows/"> เริ่มต้นกับ Ruby On Rails ตอนที่ 1 Install Rails on Windows</a> แต่หากว่าได้ทำการติดตั้งแล้ว เรามาเริ่มต้น rails application ตัวแรกด้วย Hello World กันเลยครับ<span id="more-377"></span></p>
<h3>ขั้นที่ 1 สร้างโปรแจค Rails Application</h3>
<p>เริ่มแรกให้เราเข้าไปยัง folder ที่ต้องการเก็บโปรแจคนี้เอาไว้ครับในที่นี้ผมต้องการเก็บไว้ที่ E:Tutorialrails&gt; จากนั้นให้พิมพ์คำสั่ง<br />
<code>rails hello</code></p>
<p>โดยคำสั่งนี้คือการสร้างโปรแจคชื่อว่า hello ขึ้นมา โดยจะมีการสร้างไฟล์ที่จำเป็นสำหรับโปรแจคนี้หลายไฟล์โดยมีรายละเอียดดังนี้</p>
<p><a href="http://www.iearn.in.th/wp-content/uploads/2009/03/2-rails-hirachy.jpg"><img class="alignleft size-full wp-image-379" title="2-rails-hirachy" src="http://www.iearn.in.th/wp-content/uploads/2009/03/2-rails-hirachy.jpg" alt="2-rails-hirachy" width="243" height="395" /></a>เมื่อสร้างโปรแจค hello จะพบ folder ใหม่ใน rails คือ folder hello วึ่งเป็น folder ของโปรแจคโดยโครงสร้างของ folder จะมีดังนี้ครับ</p>
<p>1. app เป็น folder สำหรับเก็บ controller,helper,models และ views ที่ใช้ในการแสดงผล<br />
- controllers จะเป็นส่วนที่จัดการในการโปรเซสทั้งหมดของ rails<br />
- helpers จะเก็บ coding ในส่วนของกรณีที่ต้องการเขียนโค้ดใน view แต่สามารถมาเขียนเพิ่มใน helper แทน<br />
- models เป็น code ที่มีการติดต่อกับฐานข้อมูลโดยใช้ active record<br />
- views จะเป็นส่วที่เก็บ .erb สำหรับใช้ในการแสดงผล</p>
<p>2. config  เป็น folder ที่เก็บไฟล์การตั้งค่าต่างๆ ของโปรแจค</p>
<p>3. db เป้น folder ที่ใช้ในการเก็บ schema ของฐานข้อมูล</p>
<p>4. doc ส่วนที่เก็บ doc ในกรณีที่สั่งให้ rails สร้าง document ของโปรแจค</p>
<p>5. lib เป้น library ที่เขียนขึ้นเองนอกเหนือจาก rails core</p>
<p>6. log ใช้สำหรับการเก็บ log การทำงานของ server</p>
<p>7. public สำหรับเก็บรูปภาพ javascript และ stylesheets</p>
<p>8. script เป็นตัวช่วยในการ generate ส่วนต่างๆ ของ rails application</p>
<p>9. test เป็นส่วนของการใช้งาน function ในการทดสอบโปรแกรม</p>
<p style="padding-left: 90px;">
<p>เมื่อสร้างโปรแจคเสร็จแล้วให้เราลองเริ่มการทำงานของโปรแจคโดยการเข้่าไปยัง root directory ของโปรแจค<br />
<code><br />
cd hello<br />
ruby script/server</code></p>
<p>จากนั้นให้ลองเปิด browser ไปยัง http://localhost:3000 จะได้หน้าตาดังรูป</p>
<p><a href="http://www.iearn.in.th/wp-content/uploads/2009/03/2-rails-server-start.jpg"><img class="aligncenter size-medium wp-image-380" title="2-rails-server-start" src="http://www.iearn.in.th/wp-content/uploads/2009/03/2-rails-server-start-300x214.jpg" alt="2-rails-server-start" width="300" height="214" /></a></p>
<h3>ขั้นที่ 2 สร้าง Controllers</h3>
<p>หลังจากที่ได้สร้างโปรแจคขึ้นมาแล้วขั้นต่อไปจะทกลองสร้าง controller ขึ้นมาโดยให้ชื่อว่า say โดยการใช้คำสั่ง<br />
<code>ruby script/generate controller say</code><br />
<a href="http://www.iearn.in.th/wp-content/uploads/2009/03/2-rails-genreate-say-controller.jpg"><img class="aligncenter size-medium wp-image-381" title="2-rails-genreate-say-controller" src="http://www.iearn.in.th/wp-content/uploads/2009/03/2-rails-genreate-say-controller-300x151.jpg" alt="2-rails-genreate-say-controller" width="300" height="151" /></a><br />
เมื่อสร้าง controller แล้วให้ลองใช้ text editor ตัวไหนก็ได้เปิด ไฟล์ที่อยู่ใน appcontrollersay_controller.rb ขึ้นมา</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="rails" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">class</span> SayController <span style="color:#006600; font-weight:bold;">&lt;</span> ApplicationController
<span style="color:#9966CC; font-weight:bold;">end</span></pre></td></tr></table></div>

<h3>ขั้นที่ 3 สร้าง Action แรกชื่อว่า hello</h3>
<p>เมื่อเราได้สร้าง controller ขึ้นมาแล้วตามหลักของ rails เราจำเป็นต้องมี action ในการเข้าถึงโดยในที่นี้จะทำการสร้าง action ที่มีชื่อว่า hello</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="rails" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">class</span> SayController <span style="color:#006600; font-weight:bold;">&lt;</span> ApplicationController
	<span style="color:#9966CC; font-weight:bold;">def</span> hello
	<span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></td></tr></table></div>

<p>จากนั้นให้ทำการ start rails server ขึ้นมาใหม่โดยการใช้คำสั่งด้านล่าง<br />
<code>ruby script/server</code><br />
ทดสอบโดยการไปที่ http://localhost:3000/say/hello เมื่อเราเข้าไปจะเกิด error เนื่องจากว่ายังไม่ได้มีการตั้งค่าให้กับการ connection กับฐานข้อมูลซึ่งใน version 2.2.2 นี้จำเป็นต้องมีการตั้งค่าการเชื่อมต่อกับฐานข้อมูลเลย</p>
<h3>ขั้นที่ 4 การตังค่า database.yml ให้ติดต่อกับ mysql </h3>
<p>สำหรับในส่วนของการสร้างฐานข้อมูลผมคงไม่อธิบายในที่นี้นะครับ โดยผมได้สร้างฐานข้อมูลชื่อ hello_development ขึ้นมาแล้วในส่วนการตั้งค่าให้เข้าไปยัง helloconfigdatabase.yml โดยแก้ไขตามดังต่อไปนี้ (แก้เฉพาะส่วน development)</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>10
11
12
13
14
15
</pre></td><td class="code"><pre class="rails" style="font-family:monospace;">development:
  adapter: mysql
  database: hello_development
  username: rails_tutor
  password: rails
  host: localhost</pre></td></tr></table></div>

<p>จากนั้นให้ทำการบันทึก database.yml ที่ได้รับการแก้ไข และให้ลองเริ่มการทำงานของ rails ใหม่และไปที่ http://localhost:3000/say/hello หากทุกอย่างถูกต้องจะพบกับหน้า template missing<br />
<a href="http://www.iearn.in.th/wp-content/uploads/2009/03/2-rails-template-missing.jpg"><img src="http://www.iearn.in.th/wp-content/uploads/2009/03/2-rails-template-missing-300x43.jpg" alt="2-rails-template-missing" title="2-rails-template-missing" width="300" height="43" class="aligncenter size-medium wp-image-385" /></a></p>
<h3>ขั้นที่ 5 สร้าง View ให้กับ action hello ใน controller say</h3>
<p>เพื่อเป็นการแก้ไขกรณีที่ template missing เกิดขึ้นเนื่องจากว่า เมื่อมีการเรียก http://localhost:3000/controller/action rails จะทำการหา view ที่ชื่อ action.html.erb โดยอัตโนมัติ โดยในกรณีนี้จะชื่อว่า hello.html.erb ซึ่งจะอยู่ใน helloappviewssayhello.html.erb ซึ่งเมื่อเราเข้าไปเราจะไม่พบไฟล์นี้ให้สร้างไฟล์นี้ขึ้นมาและให้เพิ่มโค้ดนั้นด้วย</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">html</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">head</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">title</span>&gt;</span>Hello, Rails!<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">title</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">head</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>Hello from Rails!<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">html</span>&gt;</span></pre></td></tr></table></div>

<p>จากนั้นให้ทดสอบโดยการเข้าไปยังที่อยู่เดิมอีกครั้ง เราจะพบกับ html ธรรมดาที่ได้เขียนไว้ในส่วนของ hello.html.erb</p>
<h3>ขั้นที่ 6 สร้าง action เพิ่มเติมชื่อว่า bye</h3>
<p>ในส่วนนี้ผมจะทำการสร้าง action เพิ่มเติมขึ้นมาโดยให้ชื่อว่า bye โดยจะทำการเชื่อมต่อกันระหว่างหน้า hello กับหน้า bye โดยผมต้องทำการเพิ่มโค้ดในส่วนของ controller ดังนี้ครับ</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="rails" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">class</span> SayController <span style="color:#006600; font-weight:bold;">&lt;</span> ApplicationController
	<span style="color:#9966CC; font-weight:bold;">def</span> hello
	<span style="color:#9966CC; font-weight:bold;">end</span>
	<span style="color:#9966CC; font-weight:bold;">def</span> bye <span style="color:#008000; font-style:italic;">#lฃส่วนนี้คือส่วนที่เพิ่มเข้ามา</span>
	<span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></td></tr></table></div>

<p>หลังจากนั้นจะทำการสร้าง view สำหรับ action นี้โดยไปสร้างไว้ที่ helloappviewssaybye.html.erb</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">html</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">head</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">title</span>&gt;</span>Bye, Rails!<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">title</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">head</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>Bye from Rails!<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">html</span>&gt;</span></pre></td></tr></table></div>

<p>จากนั้นให้ลองเข้าไปที่ http://localhost:3000/say/bye เราจะพบกับ action ใหม่ที่เราได้สร้่างไว้คือ bye</p>
<h3>ขั้นที่ 7 สร้าง linking ระหว่าง action</h3>
<p>สำหรับในส่วนนี้จะสร้างการเชื่อมต่อระหว่าง action แต่ละ action โดยการใช้ a href และการใช้งาน link_to method ซึ่งใรการเพิ่มเราสามารถทำได้ทั้ง 2 แบบ แต่ผมแนะนำแบบหลังดีกว่าเนื่องจากว่าในกรณีที่ app ของเราไม่ได้อยู่ใน root directory ของ host จะได้ไม่เกิดปัญหาครับ แก้ไขโดยการเพิ่มโค้ดในส่วนของ say.html.erb</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;">    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;/say/bye&quot;</span>&gt;</span>Good Bye with a href<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span>
    <span style="color: #009900;">&lt;%<span style="color: #66cc66;">=</span> link_to <span style="color: #ff0000;">&quot;Good bye with link_to&quot;</span>,:<span style="color: #000066;">action</span><span style="color: #66cc66;">=</span>&gt;</span>:bye%&gt;</pre></td></tr></table></div>

<p>โดยทั้ง 2 แบบจะให้ผลเหมือนกันแต่ในกรณีที่ app ของเราไม่ได้อยู่ใน root directory วิธีแรกจะอ้าง path ในการเข้าถึงผิด อย่างเช่น app ของเราอยู่ที่ http://localhost/rails/hello เมื่อเราใช้วิธีแรกจะเป็นการเรียกไปยัง http://localhost/say/bye แต่หากเป็นวิธีที่ 2 rails จะเรียกไปยัง http://localhost/rails/say/bye ซึ่งเป็นที่อยุ่ที่ถูกต้อง<br />
ไฟล์ <a href="http://www.iearn.in.th/wp-download/hello-tutorails-2.rar">hello-tutorails-2.rar</a></p>

<p class="sayac_bilgi">115 views</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iearn.in.th/2009/03/10/%e0%b9%80%e0%b8%a3%e0%b8%b4%e0%b9%88%e0%b8%a1%e0%b8%95%e0%b9%89%e0%b8%99%e0%b8%81%e0%b8%b1%e0%b8%9a-ruby-on-rails-%e0%b8%95%e0%b8%ad%e0%b8%99%e0%b8%97%e0%b8%b5%e0%b9%88-2-hello-world-with-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

