Ruby on Rails Handledning
Komma igång med Ruby on Rails
Sök…
Anmärkningar
Ruby on Rails (RoR), eller Rails, är en populär källa för webbapplikationer med öppen källkod. Rails använder Ruby, HTML, CSS och JavaScript för att skapa en webbapplikation som körs på en webbserver. Rails använder modell-view-controller (MVC) -mönstret och ger ett fullstack med bibliotek från databasen hela vägen till vyn.
versioner
Version | Utgivningsdatum |
---|---|
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 |
Skapa en Ruby on Rails-applikation
Detta exempel antar att Ruby och Ruby on Rails redan har installerats korrekt. Om inte kan du hitta hur du gör det här .
Öppna en kommandorad eller terminal. För att skapa en ny rails-applikation, använd rails nytt kommando följt av namnet på din applikation:
$ rails new my_app
Om du vill skapa din Rails-applikation med en specifik Rails-version kan du ange den vid tidpunkten för att generera applikationen. För att göra det, använd rails _version_ new
följt av applikationsnamnet:
$ rails _4.2.0_ new my_app
Detta kommer att skapa en Rails program som heter MyApp
i en my_app
katalog och installera pärla beroenden som redan nämns i Gemfile
använda bundle install
.
Om du vill växla till den nyskapade appens katalog använder du cd
kommandot, som står för change directory
.
$ cd my_app
my_app
katalogen har ett antal auto-genererade filer och mappar som utgör strukturen för en Rails-applikation. Följande är en lista över filer och mappar som skapas som standard:
Filmapp | Ändamål |
---|---|
app/ | Innehåller styrenheter, modeller, visningar, hjälpare, mailare och tillgångar för din ansökan. |
bin / | Innehåller rails-skriptet som startar din app och kan innehålla andra skript som du använder för att konfigurera, uppdatera, distribuera eller köra din applikation. |
config / | Konfigurera applikationens rutter, databas och mer. |
config.ru | Rackkonfiguration för rackbaserade servrar som används för att starta applikationen. |
db / | Innehåller ditt nuvarande databasschema samt databasmigreringar. |
Gemfile Gemfile.lock | Dessa filer låter dig specificera vilka pärlberoende som behövs för din Rails-applikation. Dessa filer används av Bundler-pärla. |
lib / | Utökade moduler för din applikation. |
logga/ | Programloggfiler. |
offentlig/ | Den enda mapp som världen ser som den är. Innehåller statiska filer och sammanställda tillgångar. |
Rakefile | Denna fil lokaliserar och laddar uppgifter som kan köras från kommandoraden. Uppgiftsdefinitionerna definieras genom komponenterna i Rails. |
README.md | Detta är en kort bruksanvisning för din ansökan. Du bör redigera den här filen för att berätta för andra vad din ansökan gör, hur man ställer in den osv |
testa/ | Enhetstester, fixturer och andra testapparater. |
temp / | Tillfälliga filer (som cache- och pid-filer). |
Säljare/ | En plats för all tredje parts kod. I en typisk Rails-applikation inkluderar detta levererade ädelstenar. |
Nu måste du skapa en databas från din database.yml
fil:
rake db:create
# OR
rails db:create
rake db:create
Nu när vi har skapat databasen måste vi köra migreringar för att ställa in tabellerna:
rake db:migrate
# OR
rails db:migrate
rake db:migrate
För att starta applikationen måste vi avbryta servern:
$ rails server
# OR
$ rails s
Som standard kommer rails att starta applikationen i port 3000. För att starta applikationen med olika portnummer måste vi avbryta servern som,
$ rails s -p 3010
Om du navigerar till http: // localhost: 3000 i din webbläsare ser du en välkomstsida för Rails som visar att din applikation nu körs.
Om det kastar ett fel kan det finnas flera möjliga problem:
- Det finns ett problem med
config/database.yml
- Du har beroenden i din
Gemfile
som inte har installerats. - Du har väntade migrationer. Kör
rails db:migrate
- Om du flyttar till de tidigare migreringsskenorna
rails db:rollback
Om det fortfarande kastar ett fel, bör du kontrollera config/database.yml
Skapa en ny Rails-app med ditt val av databas och inklusive RSpec Testing Tool
Rails använder sqlite3
som standarddatabas, men du kan generera en ny railsapplikation med en valfri databas. Lägg bara till alternativet -d
följt av databasens namn.
$ rails new MyApp -T -d postgresql
Detta är en (icke uttömmande) lista över tillgängliga databasalternativ:
- mysql
- orakel
- postgresql
- sqlite3
- frontbase
- ibm_db
- SQLServer
- jdbcmysql
- jdbcsqlite3
- jdbcpostgresql
- jdbc
Kommandot -T indikerar att hoppa över installationen av minitest. För att installera en alternativ testsvit som RSpec , redigera Gemfile och lägg till
group :development, :test do
gem 'rspec-rails',
end
Starta sedan följande kommando från konsolen:
rails generate rspec:install
Generera en kontroller
För att generera en styrenhet (till exempel Posts
), navigerar du till din projektkatalog från en kommandorad eller terminal och kör:
$ rails generate controller Posts
Du kan förkorta den här koden genom att ersätta generate
med g
, till exempel:
$ rails g controller Posts
Om du öppnar upp den nyligen genererade appen / controllers / posts_controller.rb ser du en controller utan åtgärder:
class PostsController < ApplicationController
# empty
end
Det är möjligt att skapa standardmetoder för styrenheten genom att mata in kontrollerens namnargument.
$ rails g controller ControllerName method1 method2
Om du vill skapa en styrenhet i en modul anger du styrenhetens namn som en sökväg som parent_module/controller_name
. Till exempel:
$ rails generate controller CreditCards open debit credit close
# OR
$ rails g controller CreditCards open debit credit close
Detta genererar följande filer:
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
En styrenhet är helt enkelt en klass som är definierad att ärva från ApplicationController
.
Det är inne i den här klassen som du definierar metoder som kommer att bli åtgärderna för den här kontrollern.
Skapa en resurs med byggnadsställningar
Från guides.rubyonrails.org:
Istället för att generera en modell direkt. . . låt oss ställa in ett byggnadsställning. Ett ställning i Rails är en fullständig uppsättning av modeller, databasmigrering för den modellen, styrenhet för att manipulera den, vyer för att visa och manipulera data och en testsvit för var och en av ovanstående.
Här är ett exempel på ställning av en resurs som heter Task
med ett strängnamn och en textbeskrivning:
rails generate scaffold Task name:string description:text
Detta genererar följande filer:
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
exempel för att radera filer som genererats av ställning för resursen som heter Task
rails destroy scaffold Task
Skapa en ny Rails-app med en icke-standardiserad databasadapter
Rails levereras som standard med ActiveRecord
, en ORM (Object Relational Mapping) härrörande från mönstret med samma namn .
Som en ORM är den byggd för att hantera relationskartläggning, och mer exakt genom att hantera SQL-förfrågningar för dig, därmed begränsningen till endast SQL-databaser.
Du kan dock fortfarande skapa en Rails-app med ett annat databashanteringssystem:
- Skapa helt enkelt din app utan aktiv post
$ rails app new MyApp --skip-active-record
- lägg till ditt eget databashanteringssystem i
Gemfile
gem 'mongoid', '~> 5.0'
-
bundle install
och följ installationsstegen från önskad databas.
I det här exemplet är mongoid
en objektskartläggning för MongoDB
och - som många andra databas-ädelstenar byggda för räls - ärver den också från ActiveModel
på samma sätt som ActiveRecord
, som ger ett gemensamt gränssnitt för många funktioner som valideringar, återuppringningar, översättningar, etc. .
Andra databasadaptrar inkluderar, men är inte begränsade till:
datamapper
uppföljaren-skenor
Skapa Rails API: er i JSON
Detta exempel antar att du har erfarenhet av att skapa Rails-applikationer.
Kör för att skapa en API-enbart app i Rails 5
rails new name-of-app --api
Lägg till active_model_serializers i Gemfile
gem 'active_model_serializers'
installera bunt i terminalen
bundle install
Ställ in ActiveModelSerializer
adaptern så att den använder :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 )
Generera ett nytt ställning för din resurs
rails generate scaffold Task name:string description:text
Detta genererar följande filer:
Controller: app / controllers / task_controller.rb
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
Installera skenor
Installera Rails på Ubuntu
På en ren ubuntu bör installationen av Rails vara rakt fram
Uppgradering av ubuntu-paket
sudo apt-get update
sudo apt-get upgrade
Installera Ruby och Rails-beroende
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
Installera rubinversionshanteraren. I detta fall använder den enkla rbenv
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
Installera Ruby Build
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
Starta om skalet
exec $SHELL
Installera rubin
rbenv install 2.3.1
rbenv global 2.3.1
rbenv rehash
Installera skenor
gem install rails
Installera Rails på Windows
Steg 1: Installera Ruby
Vi behöver Ruby-programmeringsspråk installerat. Vi kan använda en förkompilerad version av Ruby som heter RubyInstaller.
- Ladda ner och kör Ruby Installer från rubyinstaller.org .
- Kör installationsprogrammet. Markera "Lägg till Ruby-körbara filer till din PATH" och installera sedan.
- För att komma åt Ruby, gå till Windows-menyn, klicka på Alla program, bläddra ner till Ruby och klicka på "Start kommandotolken med Ruby". En kommandotolkterminal öppnas. Om du skriver
ruby -v
och trycker på Enter, bör du se Ruby-versionens nummer som du installerade.
Steg 2: Ruby Development Kit
Efter installation av Ruby kan vi försöka installera Rails. Men vissa av biblioteken Rails beror på behov av några byggverktyg för att kunna sammanställas, och Windows saknar dessa verktyg som standard. Du kan identifiera detta om du ser ett fel när du försöker installera Rails Gem::InstallError: The '[gem name]' native gem requires installed build tools.
För att fixa detta måste vi installera Ruby Development Kit.
- Ladda ner DevKit
- Kör installationsprogrammet.
- Vi måste ange en mapp där vi ska installera DevKit permanent. Jag rekommenderar att du installerar den i roten på din hårddisk på
C:\RubyDevKit
. (Använd inte mellanslag i katalognamnet.)
Nu måste vi göra DevKit-verktygen tillgängliga för Ruby.
- Byt till DevKit-katalogen i kommandotolken.
cd C:\RubyDevKit
eller vilken katalog du installerade den i. - Vi måste köra ett Ruby-skript för att initiera DevKit-installationen. Skriv
ruby dk.rb init
. Nu berättar vi samma skript för att lägga till DevKit till vår Ruby-installation. Skrivruby dk.rb install
.
DevKit ska nu vara tillgängligt för dina Ruby-verktyg att använda när du installerar nya bibliotek.
Steg 3: Rails
Nu kan vi installera Rails. Rails kommer som en Ruby pärla. Skriv din kommandotolk:
gem install rails
När du trycker på Enter kommer gem
att ladda ner och installera den versionen av Rails-pärlen, tillsammans med alla andra juveler som Rails beror på.
Steg 4: Node.js
Vissa bibliotek som Rails beror på kräver en JavaScript-runtime för att installeras. Låt oss installera Node.js så att dessa bibliotek fungerar korrekt.
- Ladda ner Node.js-installationsprogrammet härifrån .
- När nedladdningen är klar besöker du din nedladdningsmapp och kör installationsprogrammet
node-v4.4.7.pkg
. - Läs hela licensavtalet, acceptera villkoren och klicka på Nästa genom resten av guiden och lämna allt som standard.
- Ett fönster kan dyka upp med frågan om du vill tillåta att appen gör ändringar på din dator. Klicka på "Ja".
- När installationen är klar måste du starta om din dator så att Rails kan komma åt Node.js.
När din dator har startat om, glöm inte att gå till Windows-menyn, klicka på "Alla program", bläddra ner till Ruby och klicka på "Start kommandotolken med Ruby".