수색…


비고

심벌 마크

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 응용 프로그램 만들기

이 예제는 RubyRuby 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 파일에서 데이터베이스를 생성해야합니다.

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 으로 이동하면 응용 프로그램이 실행 중임을 나타내는 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

generateg 로 바꾸면이 코드를 줄일 수 있습니다. 예를 들면 다음과 같습니다.

$ 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 응용 프로그램을 만들 수 있습니다.

  1. 단순히 활동 기록없이 앱을 만들면됩니다.
$ rails app new MyApp --skip-active-record
  1. Gemfile 자신 만의 데이터베이스 관리 시스템 추가하기
gem 'mongoid', '~> 5.0'
  1. bundle install 하고 원하는 데이터베이스에서 설치 단계를 따르십시오.

이 예제에서 mongoidMongoDB 위한 객체 매핑이고 - 레일을 위해 만들어진 다른 많은 데이터베이스 젬처럼 - 또한 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로 명령 프롬프트 시작"을 클릭하십시오.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow