Ruby on Rails ट्यूटोरियल
रूबी के साथ रेल पर शुरुआत करना
खोज…
टिप्पणियों
रूबी ऑन रेल्स (RoR), या रेल्स, एक ओपन-सोर्स लोकप्रिय वेब एप्लिकेशन फ्रेमवर्क है। वेब सर्वर पर चलने वाले वेब एप्लिकेशन को बनाने के लिए रेल रूबी, एचटीएमएल, सीएसएस और जावास्क्रिप्ट का उपयोग करता है। रेल्स मॉडल-व्यू-कंट्रोलर (एमवीसी) पैटर्न का उपयोग करती हैं और डेटाबेस से लाइब्रेरी का एक फुलस्टैक देखने के लिए सभी तरह से प्रदान करती हैं।
संस्करण
संस्करण | रिलीज़ की तारीख |
---|---|
5.1.2 | 2017/06/26 |
5.0 | 2016/06/30 |
4.2 | 2014-12-19 |
4.1 | 2014-04-08 |
4.0 | 2013-06-25 |
3.2 | 2012-01-20 |
3.1 | 2011-08-31 |
3.0 | 2010-08-29 |
2.3 | 2009-03-16 |
2.0 | 2007-12-07 |
1.2 | 2007/01/19 |
1.1 | 2006/03/28 |
1.0 | 2005/12/13 |
रेल अनुप्रयोग पर एक रूबी बनाना
यह उदाहरण मानता है कि रूबी और रूबी ऑन रेल्स पहले ही ठीक से स्थापित हो चुके हैं। यदि नहीं, तो आप इसे यहां कैसे कर सकते हैं।
कमांड लाइन या टर्मिनल खोलें। एक नया रेल एप्लिकेशन बनाने के लिए, अपने एप्लिकेशन के नाम के बाद रेल कमांड का उपयोग करें:
$ rails new my_app
यदि आप एक विशिष्ट रेल संस्करण के साथ अपना रेल एप्लिकेशन बनाना चाहते हैं तो आप एप्लिकेशन को जेनरेट करने के समय इसे निर्दिष्ट कर सकते हैं। ऐसा करने के लिए, अनुप्रयोग नाम के बाद rails _version_ new
का उपयोग करें:
$ rails _4.2.0_ new my_app
यह एक my_app
निर्देशिका में MyApp
नामक एक रेल एप्लिकेशन my_app
और रत्न निर्भरता को स्थापित करेगा जो पहले से ही bundle install
का उपयोग करके Gemfile
में उल्लिखित हैं।
अपने नए बनाए गए एप्लिकेशन की निर्देशिका पर स्विच करने के लिए, cd
कमांड का उपयोग करें, जो change directory
के लिए खड़ा है।
$ cd my_app
my_app
निर्देशिका में कई ऑटो-जनरेट की गई फाइलें और फ़ोल्डर्स हैं जो एक रेल एप्लिकेशन की संरचना बनाते हैं। निम्नलिखित फ़ाइलों और फ़ोल्डरों की एक सूची है जो डिफ़ॉल्ट रूप से बनाई गई हैं:
फ़ाइल फ़ोल्डर | उद्देश्य |
---|---|
एप्लिकेशन / | आपके आवेदन के लिए नियंत्रक, मॉडल, विचार, सहायक, मेलर और संपत्ति शामिल हैं। |
bin / | रेल स्क्रिप्ट को शामिल करता है जो आपके ऐप को शुरू करता है और इसमें आपके द्वारा सेटअप करने, अपडेट करने, तैनात करने या चलाने के लिए उपयोग की जाने वाली अन्य स्क्रिप्ट हो सकती हैं। |
config / | अपने एप्लिकेशन के मार्ग, डेटाबेस और बहुत कुछ कॉन्फ़िगर करें। |
config.ru | अनुप्रयोग को प्रारंभ करने के लिए उपयोग किए गए रैक आधारित सर्वर के लिए रैक कॉन्फ़िगरेशन। |
db / | आपके वर्तमान डेटाबेस स्कीमा, साथ ही डेटाबेस माइग्रेशन शामिल हैं। |
जेमफाइल जेमफाइल.लॉक | ये फ़ाइलें आपको यह निर्दिष्ट करने की अनुमति देती हैं कि आपके रेल एप्लिकेशन के लिए कौन सी रत्न निर्भरताएं आवश्यक हैं। इन फाइलों का उपयोग बुंडलर मणि द्वारा किया जाता है। |
lib / | आपके आवेदन के लिए विस्तारित मॉड्यूल। |
log / | एप्लिकेशन लॉग फ़ाइलें। |
जनता/ | दुनिया के रूप में देखा गया एकमात्र फ़ोल्डर है। इसमें स्थिर फाइलें और संकलित संपत्ति हैं। |
Rakefile | यह फ़ाइल उन कार्यों को ढूँढती है और लोड करती है जिन्हें कमांड लाइन से चलाया जा सकता है। कार्य परिभाषाएँ रेलों के घटकों के दौरान परिभाषित की जाती हैं। |
README.md | यह आपके आवेदन के लिए एक संक्षिप्त निर्देश पुस्तिका है। आपको यह फ़ाइल दूसरों को यह बताने के लिए संपादित करनी चाहिए कि आपका एप्लिकेशन क्या करता है, इसे कैसे सेट किया जाए आदि |
परीक्षा/ | यूनिट परीक्षण, जुड़नार, और अन्य परीक्षण उपकरण। |
अस्थायी / | अस्थायी फाइलें (जैसे कैश और पीआईडी फाइलें)। |
विक्रेता / | सभी तृतीय-पक्ष कोड के लिए एक स्थान। एक ठेठ रेल आवेदन में यह शामिल रत्न शामिल हैं। |
अब आपको अपने database.yml
फ़ाइल से एक डेटाबेस बनाने की आवश्यकता है:
rake db:create
# OR
rails db:create
rake db:create
अब जब हमने डेटाबेस बना लिया है, तो हमें टेबल सेट करने के लिए माइग्रेशन चलाना होगा:
rake db:migrate
# OR
rails db:migrate
rake db:migrate
एप्लिकेशन शुरू करने के लिए, हमें सर्वर को फायर करना होगा:
$ rails server
# OR
$ rails s
डिफ़ॉल्ट रूप से, रेल 3000 बंदरगाह पर आवेदन शुरू कर देगा। विभिन्न पोर्ट नंबर के साथ आवेदन शुरू करने के लिए, हमें सर्वर को आग लगाने की आवश्यकता है, जैसे
$ rails s -p 3010
यदि आप अपने ब्राउज़र में http: // localhost: 3000 पर नेविगेट करते हैं, तो आपको एक रेल्स वेलकम पेज दिखाई देगा, जिसमें दिखाया जाएगा कि आपका एप्लिकेशन अब चल रहा है।
यदि यह एक त्रुटि फेंकता है, तो कई संभावित समस्याएं हो सकती हैं:
-
config/database.yml
में कोई समस्याconfig/database.yml
- आपके पास अपने
Gemfile
में निर्भरताएं हैं जो स्थापित नहीं हुई हैं। - आपके पास लंबित माइग्रेशन हैं। रन
rails db:migrate
- यदि आप पिछले माइग्रेशन
rails db:rollback
यदि वह अभी भी एक त्रुटि फेंकता है, तो आपको अपने config/database.yml
जांच करनी चाहिए
डेटाबेस की अपनी पसंद और RSpec परीक्षण उपकरण सहित एक नई रेल एप्लिकेशन बनाएं
रेल डिफ़ॉल्ट डेटाबेस के रूप में sqlite3
का उपयोग करता है, लेकिन आप अपनी पसंद के डेटाबेस के साथ एक नया रेल एप्लिकेशन उत्पन्न कर सकते हैं। बस डेटाबेस के नाम के बाद -d
विकल्प जोड़ें।
$ rails new MyApp -T -d postgresql
यह उपलब्ध डेटाबेस विकल्पों में से एक (गैर-पूर्ण) सूची है:
- माई एसक्यूएल
- आकाशवाणी
- PostgreSQL
- sqlite3
- frontbase
- ibm_db
- एस क्यू एल सर्वर
- jdbcmysql
- jdbcsqlite3
- jdbcpostgresql
- JDBC
-T कमांड मिनिटेस्ट की स्थापना को छोड़ने का संकेत देता है। RSpec जैसे वैकल्पिक परीक्षण सूट को स्थापित करने के लिए, Gemfile को संपादित करें और जोड़ें
group :development, :test do
gem 'rspec-rails',
end
फिर कंसोल से निम्न कमांड लॉन्च करें:
rails generate rspec:install
एक नियंत्रक उत्पन्न करना
एक नियंत्रक उत्पन्न करने के लिए (उदाहरण के लिए Posts
), कमांड लाइन या टर्मिनल से अपनी परियोजना निर्देशिका में नेविगेट करें और चलाएं:
$ rails generate controller Posts
उदाहरण के लिए, g
साथ generate
करके आप इस कोड को छोटा कर सकते हैं:
$ rails g controller Posts
यदि आप नए जनरेट किए गए एप्लिकेशन / नियंत्रकों / पोस्ट_कंट्रोलर.rb को खोलते हैं, तो आप बिना किसी क्रिया के एक नियंत्रक देखेंगे:
class PostsController < ApplicationController
# empty
end
नियंत्रक नाम तर्कों में पास करके नियंत्रक के लिए डिफ़ॉल्ट तरीके बनाना संभव है।
$ rails g controller ControllerName method1 method2
किसी मॉड्यूल के भीतर एक नियंत्रक बनाने के लिए, parent_module/controller_name
तरह कंट्रोलर नाम निर्दिष्ट करें। उदाहरण के लिए:
$ rails generate controller CreditCards open debit credit close
# OR
$ rails g controller CreditCards open debit credit close
यह निम्नलिखित फाइलें उत्पन्न करेगा:
Controller: app/controllers/credit_cards_controller.rb
Test: test/controllers/credit_cards_controller_test.rb
Views: app/views/credit_cards/debit.html.erb [...etc]
Helper: app/helpers/credit_cards_helper.rb
एक नियंत्रक बस एक वर्ग है जिसे ApplicationController
से विरासत में परिभाषित किया गया है।
यह इस वर्ग के अंदर है कि आप उन तरीकों को परिभाषित करेंगे जो इस नियंत्रक के लिए कार्य बन जाएंगे।
मचान के साथ एक संसाधन उत्पन्न करें
Guide.rubyonrails.org से:
इसके बजाय सीधे एक मॉडल उत्पन्न करना। । । चलो एक मचान सेट करें। रेल में एक पाड़ मॉडल का एक पूरा सेट है, उस मॉडल के लिए डेटाबेस माइग्रेशन, इसे हेरफेर करने के लिए नियंत्रक, डेटा को देखने और हेरफेर करने के लिए विचार, और उपरोक्त प्रत्येक के लिए एक परीक्षण सूट।
यहाँ Task
को स्ट्रिंग नाम और टेक्स्ट डिस्क्रिप्शन के साथ एक संसाधन के रूप में लिखा गया है:
rails generate scaffold Task name:string description:text
यह निम्नलिखित फाइलें उत्पन्न करेगा:
Controller: app/controllers/tasks_controller.rb
Test: test/models/task_test.rb
test/controllers/tasks_controller_test.rb
Routes: resources :tasks added in routes.rb
Views: app/views/tasks
app/views/tasks/index.html.erb
app/views/tasks/edit.html.erb
app/views/tasks/show.html.erb
app/views/tasks/new.html.erb
app/views/tasks/_form.html.erb
Helper: app/helpers/tasks_helper.rb
JS: app/assets/javascripts/tasks.coffee
CSS: app/assets/stylesheets/tasks.scss
app/assets/stylesheets/scaffolds.scss
Task
नामक संसाधन के लिए पाड़ द्वारा उत्पन्न फ़ाइलों को हटाने के लिए उदाहरण
rails destroy scaffold Task
एक गैर-मानक डेटाबेस एडाप्टर के साथ एक नया रेल एप्लिकेशन बनाएं
ActiveRecord
साथ डिफ़ॉल्ट रूप से रेल भेज दी जाती है, इसी नाम से पैटर्न से प्राप्त एक ORM (ऑब्जेक्ट रिलेशनल मैपिंग)।
ORM के रूप में, यह रिलेशनल-मैपिंग को संभालने के लिए बनाया गया है, और आपके लिए SQL अनुरोधों को संभालकर और अधिक सटीक रूप से, इसलिए केवल SQL डेटाबेस तक सीमित है।
हालाँकि, आप अभी भी एक अन्य डेटाबेस प्रबंधन प्रणाली के साथ एक रेल एप्लिकेशन बना सकते हैं:
- बस सक्रिय-रिकॉर्ड के बिना अपना ऐप बनाएं
$ rails app new MyApp --skip-active-record
-
Gemfile
में अपना स्वयं का डेटाबेस प्रबंधन सिस्टमGemfile
gem 'mongoid', '~> 5.0'
-
bundle install
और वांछित डेटाबेस से इंस्टॉलेशन चरणों का पालन करें।
इस उदाहरण में, mongoid
MongoDB
लिए एक ऑब्जेक्ट मैपिंग है और - रेल के लिए बनाए गए कई अन्य डेटाबेस रत्नों के रूप में - यह ActiveModel
से भी उसी तरह विरासत में मिलता है, जैसे ActiveRecord
, जो सत्यापन, कॉलबैक, अनुवाद, आदि जैसी कई विशेषताओं के लिए एक सामान्य इंटरफ़ेस प्रदान करता है। ।
अन्य डेटाबेस एडाप्टर में शामिल हैं, लेकिन इन तक सीमित नहीं हैं:
datamapper
अगली कड़ी-रेल
JSON में रेल एपीआई बनाना
यह उदाहरण मानता है कि आपके पास रेल एप्लिकेशन बनाने का अनुभव है।
रेल 5 में केवल एपीआई ऐप बनाने के लिए, रन करें
rails new name-of-app --api
Gemfile में active_model_serializers जोड़ें
gem 'active_model_serializers'
टर्मिनल में बंडल स्थापित करें
bundle install
ActiveModelSerializer
एडेप्टर का उपयोग करने के लिए सेट करें :json_api
# config/initializers/active_model_serializer.rb
ActiveModelSerializers.config.adapter = :json_api
Mime::Type.register "application/json", :json, %w( text/x-json application/jsonrequest application/vnd.api+json )
अपने संसाधन के लिए एक नया पाड़ उत्पन्न करें
rails generate scaffold Task name:string description:text
यह निम्नलिखित फाइलें उत्पन्न करेगा:
नियंत्रक: ऐप / कंट्रोलर / कार्य_कंट्रोलर.आरबी
Test: test/models/task_test.rb
test/controllers/tasks_controller_test.rb
Routes: resources :tasks added in routes.rb
Migration: db/migrate/_create_tasks.rb
Model: app/models/task.rb
Serializer: app/serializers/task_serializer.rb
Controller: app/controllers/tasks_controller.rb
रेल की स्थापना
उबंटू पर रेल स्थापित करना
एक स्वच्छ उबंटू पर, रेल की स्थापना सीधे आगे होनी चाहिए
Ubuntu संकुल का उन्नयन
sudo apt-get update
sudo apt-get upgrade
रूबी और रेल निर्भरताएँ स्थापित करें
sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev
माणिक संस्करण प्रबंधक स्थापित करना। इस मामले में आसान एक rbenv का उपयोग कर रहा है
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
रूबी बिल्ड स्थापित करना
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
शेल को पुनरारंभ करें
exec $SHELL
माणिक स्थापित करें
rbenv install 2.3.1
rbenv global 2.3.1
rbenv rehash
रेल की स्थापना
gem install rails
विंडोज़ पर रेल स्थापित करना
चरण 1: रूबी स्थापित करना
हमें रूबी प्रोग्रामिंग भाषा स्थापित करने की आवश्यकता है। हम RubyInstaller नामक रूबी के एक पूर्वनिर्धारित संस्करण का उपयोग कर सकते हैं।
- डाउनलोड करें और से रन रूबी इंस्टालर rubyinstaller.org ।
- इंस्टॉलर चलाएं। "अपने पेटीएम में रूबी निष्पादन योग्य जोड़ें" जांचें, फिर इंस्टॉल करें।
- रूबी तक पहुंचने के लिए, विंडोज मेनू पर जाएं, सभी प्रोग्राम्स पर क्लिक करें, रूबी को नीचे स्क्रॉल करें और "रूबी के साथ कमांड प्रॉम्प्ट प्रारंभ करें" पर क्लिक करें। एक कमांड प्रॉम्प्ट टर्मिनल खुलेगा। यदि आप
ruby -v
टाइप करते हैं और एंटर दबाते हैं, तो आपको रूबी संस्करण संख्या देखनी चाहिए जिसे आपने इंस्टॉल किया था।
चरण 2: रूबी विकास किट
रूबी स्थापित करने के बाद, हम रेल स्थापित करने का प्रयास कर सकते हैं। लेकिन पुस्तकालयों में से कुछ रेल संकलित करने के लिए कुछ बिल्ड टूल की आवश्यकता पर निर्भर करता है, और विंडोज में डिफ़ॉल्ट रूप से उन टूल का अभाव होता है। आप इसकी पहचान कर सकते हैं यदि आपको Rails Gem::InstallError: The '[gem name]' native gem requires installed build tools.
करने के प्रयास में कोई त्रुटि दिखाई देती है, तो Gem::InstallError: The '[gem name]' native gem requires installed build tools.
इसे ठीक करने के लिए, हमें रूबी विकास किट स्थापित करने की आवश्यकता है।
- DevKit डाउनलोड करें
- इंस्टॉलर चलाएं।
- हमें एक फ़ोल्डर निर्दिष्ट करने की आवश्यकता है जहां हम देवकिट को स्थायी रूप से स्थापित करने जा रहे हैं। मैं इसे
C:\RubyDevKit
पर आपकी हार्ड ड्राइव की जड़ में स्थापित करने की सलाह देताC:\RubyDevKit
। (निर्देशिका नाम में रिक्त स्थान का उपयोग न करें।)
अब हमें रूबी को देवकी टूल्स उपलब्ध कराने की आवश्यकता है।
- अपने कमांड प्रॉम्प्ट में, DevKit डायरेक्टरी में बदलें।
cd C:\RubyDevKit
या जिस भी डायरेक्टरी में आपने इसे इंस्टॉल किया है। - हमें DevKit सेटअप को आरंभीकृत करने के लिए रूबी स्क्रिप्ट को चलाने की आवश्यकता है।
ruby dk.rb init
टाइप करें। अब हम उसी स्क्रिप्ट को देवकी को हमारी रूबी स्थापना में जोड़ने के लिए कहेंगे।ruby dk.rb install
टाइप करें।
नए लाइब्रेरी स्थापित करते समय उपयोग करने के लिए देवकी अब आपके रूबी टूल्स के लिए उपलब्ध होनी चाहिए।
चरण 3: रेल
अब हम रेल स्थापित कर सकते हैं। रेल रूबी रत्न के रूप में आती है। अपने कमांड प्रॉम्प्ट में टाइप करें:
gem install rails
एक बार जब आप Enter दबाते हैं, तो gem
प्रोग्राम रेल के रत्न के उस संस्करण को डाउनलोड और इंस्टॉल कर देगा, साथ ही अन्य सभी रत्न रेल पर निर्भर करता है।
चरण 4: Node.js
कुछ लाइब्रेरी जो रेल पर निर्भर करती हैं, उन्हें स्थापित करने के लिए जावास्क्रिप्ट रनटाइम की आवश्यकता होती है। आइए Node.js स्थापित करें ताकि वे लाइब्रेरी ठीक से काम करें।
- यहां से Node.js इंस्टॉलर डाउनलोड करें ।
- जब डाउनलोड पूरा हो जाता है, तो अपने डाउनलोड फ़ोल्डर पर जाएं, और
node-v4.4.7.pkg
इंस्टॉलरnode-v4.4.7.pkg
। - पूर्ण लाइसेंस अनुबंध पढ़ें, शर्तों को स्वीकार करें, और बाकी विज़ार्ड के माध्यम से अगला क्लिक करें, सब कुछ डिफ़ॉल्ट पर छोड़ दें।
- एक विंडो पॉप अप करके पूछ सकती है कि क्या आप ऐप को अपने कंप्यूटर में बदलाव करने देना चाहते हैं। "हाँ" पर क्लिक करें।
- जब स्थापना पूरी हो जाती है, तो आपको अपने कंप्यूटर को पुनरारंभ करना होगा ताकि रेल Node.js. तक पहुंच सकें।
एक बार जब आपका कंप्यूटर पुनरारंभ हो जाता है, तो विंडोज मेनू पर जाना न भूलें, "ऑल प्रोग्राम्स" पर क्लिक करें, रूबी को स्क्रॉल करें और "रूबी के साथ स्टार्ट कमांड प्रॉम्प्ट" पर क्लिक करें।