Wednesday, September 18, 2013

রুবি অন রেইলস টিউটরিয়াল পর্ব ৪: A Demo App and User Resource

এই টিউটরিয়ালে ডেমো এপ নামে ছোট একটি এপ তৈরি করব। টার্মিনালে গিয়ে লিখুন -
$ cd rails_projects
$ rails new demo_app
$ cd demo_app
$ git init

$ git add .
$ git commit -m "first commit"
$ git remote add origin https://github.com/Mashpy/demo_app.git
$ git push -u origin master

এপটি আপলোড করলাম আমার গিটহাবে। আমরা এপটিকে এমন করতে চাই যেখানে ইউজার থাকবে এবং এর অধীনে মাইক্রোপোস্ট থাকবে।


ইউজার এবং মাইক্রোপোস্টের ডাটাবেজের এট্রিবিউট এবং টাইপ দেখতে পাচ্ছেন চার্টে -



টার্মিনালে লিখুন -
$ rails generate scaffold User name:string email:string // ইউজার টেবিলে নেম এবং ইমেইলের এট্রিবিউট যোগ হচ্ছে।
$ rake db:migrate // ডাটাবেজ আপডেট হচ্ছে।
$ rails s

http://localhost:3000/user এ যান। এখানে আপনি ইমেইল এবং ইনপুট করতে পারবেন। scaffold সিস্টেমে ডাটাবেজ ক্রিয়েট করার কারনে অনেক কিছু অটোমেটিক ক্রিয়েট হয়ে গিয়েছে। তাই এখানে edit, destroy, update করতে পারবেন।


Delete, update বা edit এ বিভিন্ন ধরনের http request কাজ করে। তা চিত্রে দেখানো হল।

এই এপটিতে কোন ভেলিডেশন রাখা হয় নি। অর্থাৎ আপনি যদি ইমেইল বা নেম এর জায়গা পূরন না করেন অথবা ইমেইল এড্রেস ভুলও দেন তাহলেও ইনপুট নিবে। পরের এপটিতে আমরা ভেলিডেশন করব। এটা জাস্ট রেইলসের sample app.

এখন মাইক্রোপোস্ট টেবিলের content এবং user_id যোগ করব। কমান্ড লিখুন -
$ rails generate scaffold Microposts content:string user_id:integer
$ rake db:migrate

ডাটাবেজটি আপডেট করার জন্য rake db:migrate কোডটি লিখেছি। ধরুন আমরা আগে অবস্থানে ফিরে যেতে চাই। যখন মাইক্রোপোস্ট টেবিলটি ছিল না।
$ rake db:rollback

আর মাইক্রোপোস্ট টেবিলটি ডিলিট করতে চাইলে-
$ rails destroy scaffold Micropost

আচ্ছা যাই হোক এখন http://localhost:3000/micropost এ গিয়ে আমরা content এবং ইউজার আইডি যোগ করতে পারব। কনটেন্টে ইচ্ছামত অনেক টেক্সট যোগ করতে পারব। ধরুন আমরা চাই যে ১৪০ টি ওয়ার্ডের রেশি যোগ করতে দেয়া যাবে না। তাহলে
app/model/micropost.rb তে লিখুন -

class Micropost< ActiveRecord::base
validate:content, :length=>{:maximum=>140}
end

এখানে এমন হতে পারে যে একজন ইউজারের অনেকগুলো মাইক্রোপোস্ট থাকতে পারে। এবং পরবর্তীতে সেগুলো দেখানোর প্রয়োজন পড়তে পারে। তাই আমরা ইউজার এবং মাইক্রোপোস্টের মধ্যে সম্পর্ক লিখে দিব।

app/model/micropost.rb তে যোগ করুন -
 belongs_to : users
app/model/user.rb তে যোগ করুন -
has_many :microposts

এখন আমরা গিটহাবে আপ করে দিব এপটি -
$ git add .
$ git commit -m "demo app is done"
$ git push

গিটহাবের কমিট মেসেজগুলো দেখতে পারেন। এবং কি কি চেঞ্জ হয়েছে তার প্রিভিউ দেখতে পারেন এই লিঙ্কে
 
 রুবি অন রেইলস টিউটরিয়াল পর্ব ৫: Making Static Pages

No comments:

Post a Comment

এখানে আপনি আপনার মূল্যবান মতামতটি প্রকাশ করতে পারেন।