នៅក្នុងអត្ថបទមុន Techfree បានរៀបរាប់អំពី របៀបដំឡើង RubyOnRails។ ចំណែកថ្ងៃនេះយើងនឹងបង្ហាញអត្ថបទមួយទាក់ទងទៅនឹង របៀបបង្កើតទម្រង់បែបបទ (form) ជាមួយ Rails។
ដើម្បីអោយ Rails បង្ហាញថា “Hello”, អ្នកចាំបាច់ត្រូវបង្កើត controller និង view យ៉ាងហោចណាស់មួយ។ គោលបំណងរបស់ controller គឺដើម្បីទទួលសំណើជាក់លាក់សម្រាប់កម្មវិធី។ Routing ជាអ្នកសម្រេចថា controller មួយណាបានទទួលនូវសំណើរមួយណា។ គោលបំណងរបស់ view គឺដើម្បីបង្ហាញព័ត៌មានក្នុងទ្រង់ទ្រាយដែលមនុស្សអាចអាន។ ភាពខុសគ្នាសំខាន់ដើម្បីបង្កើតគឺវាជា controller មិនមែនជា view ជាកន្លែងដែលបានប្រមូលព័ត៌មាន។
ដើម្បីបង្កើត controller ថ្មីមួយអ្នកនឹងចាំបាច់ត្រូវដំណើរការប្រតិបត្តិការ “controller” ហើយប្រាប់វាថាអ្នកចង់អោយវាហៅ controller “Welcome” ជាមួយនឹងការហៅសកម្មភាព “index” ដូចខាងក្រោម៖
bin/rails generate controller Welcome index
Rails នឹងបង្កើតឯកសារមួយចំនួននិង route មួយសម្រាប់អ្នក៖
create app/controllers/welcome_controller.rb route get 'welcome/index' invoke erb create app/views/welcome create app/views/welcome/index.html.erb invoke test_unit create test/controllers/welcome_controller_test.rb invoke helper create app/helpers/welcome_helper.rb invoke assets invoke coffee create app/assets/javascripts/welcome.coffee invoke scss create app/assets/stylesheets/welcome.scss
ឯកសារសំខាន់ៗនៃ controller ទាំងនេះគឺស្ថិតនៅ app/controllers/welcome_controller.rb ហើយ view ស្ថិតនៅ app/views/welcome/index.html.erb។ សូមចូលទៅថតឯកសាររបស់អ្នកដើម្បីមើល៖
បើកឯកសារ app/views/welcome/index.html.erb ជាមួយកម្មវិធីនិពន្ធអត្ថបទណាមួយរបស់អ្នក។ លុបកូដទាំងអស់ដែលមានស្រាប់នៅក្នុងឯកសារនេះហើយជំនួសវាដោយកូដមួយបន្ទាត់ដូចខាងក្រោម៖
ដំណើរការកម្មវិធី Rails ហើយបើកកម្មវិធីមើលវេបសាយរបស់អ្នក នោះនឹងបង្ហាញ៖
បន្ទាប់មកទៀតអ្នកត្រូវតែប្រាប់ Rails ថាទំព័រដើមរបស់អ្នកមានទីតាំងស្ថិតនៅត្រង់ណា។ បើកឯកសារ config/routes.rb ជាមួយកម្មវិធីនិពន្ធអត្ថបទរបស់អ្នក ហើយសរសេរកូដ៖
នៅត្រង់បន្ទាត់ទី ៤ គឺកន្លែងដែលអ្នកប្រាប់ពីទីតាំងទំព័រដើមរបស់អ្នក។
បន្ទាប់មកអ្នកត្រូវបង្កើត resource ថ្មីមួយ។ Resource គឺជាពាក្យដែលបានប្រើសម្រាប់ការប្រមូលផ្ដុំនៃវត្ថុស្រដៀងគ្នាដូចជាអត្ថបទ មនុស្ស ឬសត្វជាដើម។ អ្នកចាំបាច់ត្រូវបន្ថែម article resource ទៅឯកសារ config/routes.rb ដូចខាងក្រោម៖
ប្រសិនបើអ្នកដំណើរការពាក្យបញ្ជា bin/rails routes អ្នកនឹងឃើញថាវាត្រូវបានបានកំណត់ routes សម្រាប់សកម្មភាពស្ដង់ដារដែលនៅសល់ទាំងអស់
$ bin/rails routes Prefix Verb URI Pattern Controller#Action articles GET /articles(.:format) articles#index POST /articles(.:format) articles#create new_article GET /articles/new(.:format) articles#new edit_article GET /articles/:id/edit(.:format) articles#edit article GET /articles/:id(.:format) articles#show PATCH /articles/:id(.:format) articles#update PUT /articles/:id(.:format) articles#update DELETE /articles/:id(.:format) articles#destroy root GET / welcome#index
ជាមួយនឹង route ដែលបានកំណត់រួចទៅហើយ, សំណើឥឡូវនេះអាចត្រូវបានធ្វើឡើងទៅជា /articles/new នៅក្នុងកម្មវិធី។ ចូលទៅអសដ្ឋាន http://localhost:3000/articles/new ហើយអ្នកនឹងឃើញ routing error៖
កំហុសនេះកើតឡើងដោយសារតែ route ចាំបាច់ត្រូវមាន controller ដែលបានកំណត់នៅក្នុងគោលបំណងដើម្បីការស្នើរសុំនេះ។ ដំណោះស្រាយទៅនឹងបញ្ហានេះគឺសាមញ្ញ៖ បង្កើត controller ដែលមានឈ្មោះថា ArticlesController។ អ្នកអាចវាយពាក្យបញ្ជាដូចខាងក្រោម៖
bin/rails generate controller Articles
ប្រសិនបើអ្នកទៅមើលអ្វីដែលទើបបានបង្កើតឡើង app/controllers/articles_controller.rb អ្នកនឹងឃើញ controller មួយដែលទទេរ៖
Controller មួយគឺគ្រាន់តែជា class ដែលត្រូវបានកំណត់ដើម្បី inherit ពី ApplicationController មួយ។ វានៅក្នុង class ដែលអ្នកនឹងកំណត់វិធីសាស្រ្តដែលនឹងក្លាយទៅជា actions សម្រាប់ controller នេះ។ ប្រសិនបើអ្នកដំណើរការ http://localhost:3000/articles/new អ្នកនឹងឃើញកំហុសថ្មី៖
កំហុសនេះបង្ហាញថា Rails មិនអាចរកឃើញ action ថ្មីនៅខាងក្នុង ArticlesController ដែលអ្នកទើបតែបង្កើត។ នេះគឺដោយសារតែនៅពេលដែល controllers ត្រូវបានបង្កើតក្នុង Rails ដែលពួកគេគឺទទេតាមលំនាំដើមលុះត្រាតែអ្នកប្រាប់ actions ដែលចង់បានអំឡុងពេលដំណើរការជំនាន់នេះ។ ដើម្បីកំណត់ action នៅខាងក្នុង controller, អ្វីដែលអ្នកត្រូវធ្វើគឺកំណត់វិធីសាស្រ្តមួយនៅក្នុង controller នេះ។ បើកឯកសារ app/controllers/articles_controller.rb ហើយនៅក្នុង class ArticlesController កំណត់វិធីសាស្រ្តថ្មីនេះដូច្នេះ controller របស់អ្នកឥឡូវនេះមើលទៅដូចនេះ៖
ជាមួយនឹងវិធីសាស្រ្តថ្មីដែលបានកំណត់នៅក្នុង ArticlesController ប្រសិនបើអ្នកដំណើរការ http://localhost:3000/articles/new នោះនឹងឃើញកំហុសមួយផ្សេងទៀត៖
ហេតុនេះហើយបានជាឯកសារគួរត្រូវបានគេហៅគឺ articles/new.html.erb ហើយត្រូវស្ថិតនៅក្នុងថតនៃ app/views នៅក្នុងកម្មវិធី។ បន្ទាប់មកបង្កើតឯកសារថ្មី app/views/articles/new.html.erb ហើយសរសេរដូចនេះ៖
ពេលអ្នកដំណើរការ http://localhost:3000/articles/new នឹងបង្ហាញដូចខាងក្រោម៖
ដើម្បីបង្កើតទម្រង់បែបបទនៅក្នុងទំព័រគំរូនេះអ្នកនឹងប្រើ form builder មួយ។ ការបង្កើតទម្រង់បែបបទចម្បងសម្រាប់ Rails គឺត្រូវបានផ្តល់ដោយវិធីសាស្រ្តជំនួយដែលគេហៅថា form_for។ ដើម្បីប្រើវិធីសាស្រ្តនេះ បន្ថែមកូដនេះចូលទៅក្នុង app/views/articles/new.html.erb
នោះយើងនឹងបានទម្រង់បែបបទដូចខាងក្រោម៖