Ruby on Rails 튜토리얼
Ruby on Rails 시작하기
수색…
비고
Ruby on Rails (RoR) 또는 Rails는 대중적인 웹 애플리케이션 프레임 워크 인 오픈 소스입니다. Rails는 Ruby, HTML, CSS 및 JavaScript를 사용하여 웹 서버에서 실행되는 웹 응용 프로그램을 만듭니다. Rails는 MVC (Model-View-Controller) 패턴을 사용하고 데이터베이스에서 뷰까지 모든 라이브러리를 제공합니다.
버전
번역 | 출시일 |
---|---|
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 년 8 월 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 |
Ruby on Rails 응용 프로그램 만들기
이 예제는 Ruby 와 Ruby on Rails 가 이미 올바르게 설치되었다고 가정합니다. 그렇지 않은 경우 여기 에서 수행하는 방법을 찾을 수 있습니다 .
명령 행 또는 터미널을여십시오. 새 레일스 응용 프로그램을 생성하려면 rails new 명령과 응용 프로그램 이름을 사용하십시오.
$ rails new my_app
특정 Rails 버전으로 Rails 애플리케이션을 만들려면 애플리케이션 생성시 지정할 수 있습니다. 이를 수행하려면 rails _version_ new
와 그 다음에 응용 프로그램 이름을 사용하십시오 :
$ rails _4.2.0_ new my_app
이렇게하면 my_app
디렉토리에 MyApp
라는 Rails 애플리케이션이 생성되고 bundle install
사용하여 Gemfile
이미 언급 된 gem 종속성을 bundle install
것이다.
새로 생성 된 응용 프로그램의 디렉토리로 전환하려면 change directory
를 나타내는 cd
명령을 사용하십시오.
$ cd my_app
my_app
디렉토리에는 Rails 애플리케이션의 구조를 구성하는 자동 생성 파일 및 폴더가 많이 있습니다. 다음은 기본적으로 생성되는 파일 및 폴더 목록입니다.
파일 / 폴더 | 목적 |
---|---|
앱/ | 애플리케이션의 컨트롤러, 모델, 뷰, 헬퍼, 메일러 및 에셋을 포함합니다. |
큰 상자/ | 응용 프로그램을 시작하고 응용 프로그램을 설정, 업데이트, 배포 또는 실행하는 데 사용하는 다른 스크립트를 포함 할 수있는 레일 스크립트가 들어 있습니다. |
config / | 응용 프로그램의 경로, 데이터베이스 등을 구성합니다. |
config.ru | 응용 프로그램을 시작하는 데 사용되는 랙 기반 서버의 랙 구성. |
db / | 현재 데이터베이스 스키마와 데이터베이스 마이그레이션을 포함합니다. |
Gemfile Gemfile.lock | 이 파일들을 통해 Rails 애플리케이션에 필요한 보석 의존성을 지정할 수 있습니다. 이 파일들은 Bundler gem에서 사용합니다. |
lib / | 응용 프로그램을위한 확장 모듈. |
로그/ | 응용 프로그램 로그 파일. |
공공의/ | 전 세계가 볼 수있는 유일한 폴더. 정적 파일 및 컴파일 된 자산을 포함합니다. |
레이크 파일 | 이 파일은 명령 줄에서 실행할 수있는 작업을 찾아로드합니다. 작업 정의는 Rails 구성 요소 전체에 걸쳐 정의됩니다. |
README.md | 이것은 귀하의 애플리케이션에 대한 간략한 사용 설명서입니다. 이 파일을 편집하여 다른 사람에게 응용 프로그램의 기능, 설정 방법 등을 알려야합니다. |
테스트/ | 단위 테스트, 설비 및 기타 테스트 장치. |
임시 / | 임시 파일 (캐시 및 pid 파일과 같은). |
벤더 / | 모든 제 3 자 코드를위한 장소. 일반적인 Rails 응용 프로그램에는 이와 유사한 보석이 포함됩니다. |
이제 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 으로 이동하면 응용 프로그램이 실행 중임을 나타내는 Rails 시작 페이지가 표시됩니다.
오류가 발생하면 몇 가지 문제가 발생할 수 있습니다.
-
config/database.yml
문제가config/database.yml
-
Gemfile
에 아직 설치되지 않은 의존성이 있습니다. - 보류중인 마이그레이션이 있습니다.
rails db:migrate
실행하십시오rails db:migrate
- 이전 이전
rails db:rollback
이동하는 경우
그래도 여전히 오류가 발생하면 config/database.yml
확인해야 config/database.yml
데이터베이스를 선택하고 RSpec Testing Tool을 포함하여 새로운 Rails 애플리케이션을 생성하십시오
레일스는 sqlite3
을 기본 데이터베이스로 사용하지만 원하는 데이터베이스로 새로운 레일스 애플리케이션을 생성 할 수 있습니다. -d
옵션 다음에 데이터베이스 이름을 추가하십시오.
$ rails new MyApp -T -d postgresql
다음은 사용 가능한 데이터베이스 옵션 목록입니다.
- MySQL
- 신탁
- postgresql
- sqlite3
- 프론트베이스
- ibm_db
- sqlserver
- jdbcmysql
- jdbcsqlite3
- jdbcpostgresql
- jdbc
-T 명령은 minitest 설치를 건너 뜁니다. RSpec 과 같은 대체 테스트 스위트를 설치하려면 Gemfile을 편집하고
group :development, :test do
gem 'rspec-rails',
end
그런 다음 콘솔에서 다음 명령을 실행하십시오.
rails generate rspec:install
컨트롤러 생성하기
컨트롤러 (예 : Posts
)를 생성하려면 명령 행이나 터미널에서 프로젝트 디렉토리로 이동 한 후 다음을 실행하십시오.
$ rails generate controller Posts
generate
를 g
로 바꾸면이 코드를 줄일 수 있습니다. 예를 들면 다음과 같습니다.
$ rails g controller Posts
새로 생성 된 app / controllers / posts_controller.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
에서 상속 받도록 정의 된 클래스입니다.
이 컨트롤러 안에는이 컨트롤러의 액션이 될 메서드를 정의하는 클래스가 있습니다.
비계로 자원 생성하기
guides.rubyonrails.org에서 :
직접 모델을 생성하는 대신. . . 비계를 세우자. Rails의 스캐 폴드는 모델의 전체 집합, 해당 모델의 데이터베이스 마이그레이션, 컨트롤러가 조작하는 뷰, 데이터를보고 조작하는 뷰 및 위의 각각에 대한 테스트 슈트입니다.
다음은 문자열 이름과 텍스트 설명이 포함 된 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
비표준 데이터베이스 어댑터를 사용하여 새로운 Rails 애플리케이션 작성
Rails는 기본적으로 동일한 이름 의 패턴에서 파생 된 ORM (Object Relational Mapping) 인 ActiveRecord
와 함께 제공됩니다.
ORM은 관계형 매핑을 처리하도록 설계되었으며,보다 정확하게는 SQL 요청을 처리하여 SQL 데이터베이스에 대한 제한 사항을 처리합니다.
그러나 다른 데이터베이스 관리 시스템을 사용하여 Rails 응용 프로그램을 만들 수 있습니다.
- 단순히 활동 기록없이 앱을 만들면됩니다.
$ rails app new MyApp --skip-active-record
-
Gemfile
자신 만의 데이터베이스 관리 시스템 추가하기
gem 'mongoid', '~> 5.0'
-
bundle install
하고 원하는 데이터베이스에서 설치 단계를 따르십시오.
이 예제에서 mongoid
는 MongoDB
위한 객체 매핑이고 - 레일을 위해 만들어진 다른 많은 데이터베이스 젬처럼 - 또한 ActiveRecord
와 같은 방식으로 ActiveModel
에서 상속받습니다. ActiveRecord
는 유효성 검사, 콜백, 번역 등과 같은 많은 기능을위한 공통 인터페이스를 제공합니다. .
다른 데이터베이스 어댑터에는 다음이 포함되지만 이에 국한되지는 않습니다.
데이터 마퍼
속편 레일
JSON에서 Rails API 작성하기
이 예에서는 Rails 애플리케이션을 작성한 경험이 있다고 가정합니다.
Rails 5에 API 전용 앱을 만들려면
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
그러면 다음 파일이 생성됩니다.
컨트롤러 : app / controllers / tasks_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
레일 설치
우분투에 레일 설치하기
깨끗한 우분투에서, 레일의 설치가 곧장 앞으로해야합니다.
우분투 패키지 업그레이드
sudo apt-get update
sudo apt-get upgrade
Ruby 및 Rails 종속성 설치
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
Windows에 레일 설치
1 단계 : 루비 설치하기
Ruby 프로그래밍 언어가 설치되어 있어야합니다. RubyInstaller라는 미리 컴파일 된 버전의 Ruby를 사용할 수 있습니다.
- rubyinstaller.org 에서 Ruby Installer를 다운로드하여 실행 하십시오 .
- 설치 프로그램을 실행하십시오. "Ruby 실행 파일을 PATH에 추가"를 선택한 다음 설치하십시오.
- 루비에 액세스하려면 Windows 메뉴에서 모든 프로그램을 클릭하고 루비로 스크롤 한 다음 "루비로 명령 프롬프트 시작"을 클릭하십시오. 명령 프롬프트 터미널이 열립니다.
ruby -v
를 입력하고 Enter 키를 누르면 설치 한 Ruby 버전 번호를 볼 수 있습니다.
2 단계 : Ruby 개발 키트
Ruby를 설치 한 후에 우리는 Rails를 설치하려고 할 수 있습니다. 그러나 레일스 라이브러리 중 일부는 컴파일하기 위해 일부 빌드 도구가 필요하며 Windows에는 기본적으로 이러한 도구가 없습니다. Rails Gem::InstallError: The '[gem name]' native gem requires installed build tools.
을 설치하려고 할 때 오류가 발생하면이를 확인할 수 있습니다. Gem::InstallError: The '[gem name]' native gem requires installed build tools.
이 문제를 해결하려면 Ruby Development Kit을 설치해야합니다.
- DevKit 다운로드
- 설치 프로그램을 실행하십시오.
- 우리는 DevKit을 영구적으로 설치할 폴더를 지정해야합니다. 하드 드라이브의 루트
C:\RubyDevKit
설치하는 것이 좋습니다. 디렉토리 이름에 공백을 사용하지 마십시오.
이제 우리는 DevKit 도구를 Ruby에서 사용할 수 있도록해야합니다.
- 명령 프롬프트에서 DevKit 디렉토리로 변경하십시오.
cd C:\RubyDevKit
또는 설치 한 디렉토리. - DevKit 설정을 초기화하려면 Ruby 스크립트를 실행해야합니다.
ruby dk.rb init
입력하십시오. 이제 우리는 Ruby 설치에 DevKit을 추가하는 동일한 스크립트를 말할 것입니다.ruby dk.rb install
입력하십시오.
새 라이브러리를 설치할 때 Ruby 도구에서 DevKit을 사용할 수 있어야합니다.
3 단계 : 레일
이제 우리는 Rails를 설치할 수 있습니다. Rails는 루비 보석으로 제공됩니다. 명령 프롬프트에 다음을 입력하십시오.
gem install rails
Enter를 누르면 gem
프로그램이 Rails gem의 해당 버전을 다운로드하여 설치하고 Rails가 의존하는 다른 모든 보석을 설치합니다.
4 단계 : Node.js
Rails가 의존하는 일부 라이브러리는 자바 스크립트 런타임을 설치해야합니다. Node.js를 설치하여 라이브러리가 제대로 작동하도록하십시오.
- 여기 에서 Node.js 설치 프로그램을 다운로드 하십시오 .
- 다운로드가 완료되면 다운로드 폴더로 이동하여
node-v4.4.7.pkg
설치 프로그램을 실행하십시오. - 전체 사용권 계약을 읽고 조건에 동의 한 후 나머지 마법사를 통해 다음을 클릭하여 모든 항목을 기본값으로 둡니다.
- 앱이 컴퓨터를 변경하도록 허용할지 묻는 팝업 창이 나타날 수 있습니다. "예"를 클릭하십시오.
- 설치가 완료되면 Rails가 Node.js에 액세스 할 수 있도록 컴퓨터를 다시 시작해야합니다.
컴퓨터가 다시 시작되면 Windows 메뉴로 이동하여 "모든 프로그램"을 클릭하고 Ruby로 스크롤 한 다음 "Ruby로 명령 프롬프트 시작"을 클릭하십시오.