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

एक गैर-मानक डेटाबेस एडाप्टर के साथ एक नया रेल एप्लिकेशन बनाएं

ActiveRecord साथ डिफ़ॉल्ट रूप से रेल भेज दी जाती है, इसी नाम से पैटर्न से प्राप्त एक ORM (ऑब्जेक्ट रिलेशनल मैपिंग)।

ORM के रूप में, यह रिलेशनल-मैपिंग को संभालने के लिए बनाया गया है, और आपके लिए SQL अनुरोधों को संभालकर और अधिक सटीक रूप से, इसलिए केवल SQL डेटाबेस तक सीमित है।

हालाँकि, आप अभी भी एक अन्य डेटाबेस प्रबंधन प्रणाली के साथ एक रेल एप्लिकेशन बना सकते हैं:

  1. बस सक्रिय-रिकॉर्ड के बिना अपना ऐप बनाएं
$ rails app new MyApp --skip-active-record
 
  1. Gemfile में अपना स्वयं का डेटाबेस प्रबंधन सिस्टम Gemfile
gem 'mongoid', '~> 5.0'
 
  1. bundle install और वांछित डेटाबेस से इंस्टॉलेशन चरणों का पालन करें।

इस उदाहरण में, mongoid MongoDB लिए एक ऑब्जेक्ट मैपिंग है और - रेल के लिए बनाए गए कई अन्य डेटाबेस रत्नों के रूप में - यह ActiveModel से भी उसी तरह विरासत में मिलता है, जैसे ActiveRecord , जो सत्यापन, कॉलबैक, अनुवाद, आदि जैसी कई विशेषताओं के लिए एक सामान्य इंटरफ़ेस प्रदान करता है। ।

अन्य डेटाबेस एडाप्टर में शामिल हैं, लेकिन इन तक सीमित नहीं हैं:

  • datamapper

  • अगली कड़ी-रेल

डेटाबेस की अपनी पसंद और 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
 

रेल अनुप्रयोग पर एक रूबी बनाना

यह उदाहरण मानता है कि रूबी और रूबी ऑन रेल्स पहले ही ठीक से स्थापित हो चुके हैं। यदि नहीं, तो आप इसे यहां कैसे कर सकते हैं।

कमांड लाइन या टर्मिनल खोलें। एक नया रेल एप्लिकेशन बनाने के लिए, अपने एप्लिकेशन के नाम के बाद रेल कमांड का उपयोग करें:

$ 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 फ़ाइल से एक डेटाबेस बनाने की आवश्यकता है:

5.0
rake db:create
# OR
rails db:create
 
5.0
rake db:create
 

अब जब हमने डेटाबेस बना लिया है, तो हमें टेबल सेट करने के लिए माइग्रेशन चलाना होगा:

5.0
rake db:migrate
# OR
rails db:migrate
 
5.0
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 जांच करनी चाहिए

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
 

मचान के साथ एक संसाधन उत्पन्न करें

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
 

एक नियंत्रक उत्पन्न करना

एक नियंत्रक उत्पन्न करने के लिए (उदाहरण के लिए 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 से विरासत में परिभाषित किया गया है।

यह इस वर्ग के अंदर है कि आप उन तरीकों को परिभाषित करेंगे जो इस नियंत्रक के लिए कार्य बन जाएंगे।

रेल की स्थापना

उबंटू पर रेल स्थापित करना

एक स्वच्छ उबंटू पर, रेल की स्थापना सीधे आगे होनी चाहिए

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. तक पहुंच सकें।

एक बार जब आपका कंप्यूटर पुनरारंभ हो जाता है, तो विंडोज मेनू पर जाना न भूलें, "ऑल प्रोग्राम्स" पर क्लिक करें, रूबी को स्क्रॉल करें और "रूबी के साथ स्टार्ट कमांड प्रॉम्प्ट" पर क्लिक करें।