Ruby on Rails로 어플리케이션을 제작하고 디버깅할 때까지의 프로세스 [Prograte·Rails 자습서]

12144 단어 RubyRails
개시하다
우선 rails가 잘 작동하는지 확인하세요.
다음은 모두 단말기에서 일한다.
Mac의 사람들은 Spotlight로 터미널을 검색해서 표시합니다.
rails 설치 확인
rails -v
이렇게 되면 "Rails is not currently installed on this system"면 rails가 설치되어 있지 않아서 설치합니다.
설치 방법
gem install rails
이렇게 설치해야 합니다. "You don't have write perissions for the/Library/Ruby/Gems 2.6.0 directory"그렇다면 이 방법을 추천합니다.
초보자인 나도 레일스를 걸어 넘어지지 않도록 꼼꼼히 기록되어 있다.
https://qiita.com/nishina555/items/63ebd4a508a09c481150
https://www.yururiwork.net/archives/1563
https://qiita.com/w7tree/items/0860e2856f2429b20eee
개발 환경
local로 개발하려고 했지만 localhost는 Google chrome을 열 수 없어 포기했습니다.
대신 AWS의 클라우드 9 개발이 주를 이뤘다.
상세한 환경 구축 방법은 시에 설치된 강좌나Ruby on rails 자습서에서 진행할 수 있다.
설치를 누르면 rails 버전이 최신이 아니라고 하지만 (확실히 5.0.3) Rails 강좌에서는 최신 버전을 넣을 수 있으니 좋아하는 사람을 따라주세요.
또 Rails 튜토리얼에서 클라우드 9의 디스크 용량이 커지고 자바스크립트 소프트웨어 의존 관계를 관리하는 Yarn 프로그램을 설치했다.
터미널에서 다음 코드를 기술합니다.
클라우드 IDE에 설치할 수 있는 디스크 용량 증가 및 Yarn
$ source <(curl -sL https://cdn.learnenough.com/resize)
$ source <(curl -sL https://cdn.learnenough.com/yarn_install)
응용 프로그램 만들기
응용 프로그램 생성
rails new tweet_app
tweet_app를 원하는 프로그램 이름으로 변경합니다.
제작 후 config와 app 등 필요한 파일이 자동으로 생성됩니다.
finder에서 만든 파일을 찾을 때, 검색 창에 자신의 이름을 입력하면 폴더로 나온다.
이 예로 Twitter-app와 입력.
rails 명령으로 작성된 각 파일의 의미는 rails 강좌에서 필기를 상세하게 가르쳐 주었기 때문이다.

rails 자습서에서 Gemfile의 설정도 변경됩니다.
기본적으로 Gemfile을 편집할 때 터미널에서 bundle install 명령을 사용합니다.
bundle install은 Gemfile에서 bundler를 사용하여gem를 설치하는 명령입니다.
직접 나오는gem은 두 가지 의미가 있다.
1. 루비젬스가 공개한 루비의 포장.
2. 이 패키지를 관리하는 패키지 관리 시스템의 이름
bundle install에서 다음 오류가 발생했을 때 bundle 업데이트를 진행합니다.
Fetching gem metadata from https://rubygems.org/.
You have requested:
  listen = 3.1.5

The bundle currently has listen locked at 3.4.1.
Try running `bundle update listen`

If you are updating multiple gems in your Gemfile at once,
try passing them all to `bundle update`
참조 사이트는 여기.
"could not locate Gemufile"오류가 발생하면 cd에서 레벨을 이동해야 합니다.
프로그램 이름 아래로 이동합니다.
참조 사이트는 여기.
GiitHub 사용
GiitHub에 대한 자세한 설정과 절차는 아래 사이트를 참조하십시오.
Giit 및 GiitHub 로드맵을 최대한 활용할 수 있도록
이번에는 비망록 정도에 코드를 적어 놓으세요.
Git에 정보 등록
 
cloud9User:~/environment $ git config --global user.name "自分の名前"
cloud9User:~/environment $ git config --global user.email [email protected]
창고 초기화
cloud9User:~/environment $ cd hello_app
cloud9User:~/environment/hello_app (master) $ git init
Reinitialized existing Git repository in /home/ubuntu/environment/hello_app/.git/
git init 초기화 후에도 "창고 초기화"라는 메시지를 보냅니다
이것은 프로그램을 만들 때 rails new 명령을 실행할 때 Giit 창고를 자동으로 생성하기 위해서입니다.
프로젝트의 모든 파일을 창고에 추가
cloud9User:~/environment/hello_app (master) $ git add -A
참고로 옵션을 소문자 [-a]로 설정하면 오류가 발생합니다.
commiit
옵션 [-m] 다음에 제출 메시지를 쓰면 편집기를 열지 않아도 메시지를 설명할 수 있습니다.
cloud9User:~/environment/hello_app (master) $ git commit -m "Initialize repository"
[master (root-commit) 5d695f4] Initialize repository
 92 files changed, 3200 insertions(+)
 create mode 100644 .browserslistrc
 create mode 100644 .gitignore
・
・
・
 ```

##GitHubのブラウザでNewRepositoryを作成する
Privateにするほうが望ましい。


##GitHubをリモートoriginに追加して、そのリポジトリにpushする
先程の手順のあとに遷移した画面で、コピーできるようになっているので、そのままコピーしてもOK

```terminal
$ git remote add origin https://github.com/<あなたのGitHubアカウント名>/hello_app.git
$  git branch -M main
$ git push -u origin master
분기를 쳐서 전환해 보세요.
분기란'분기 제출 역사의 기능'을 가리킨다.
개발의 주류 지점에서 독립된 환경이 있기 때문에 동시에 개발 작업을 진행할 수 있다.
최초에main(이전 마스터)의 이름으로 등록된 지점이 있었다.
내용상 영어 숫자의 나열(제출 ID)에 불과한 것으로, 이른바 공백이란'특정 제출 ID만을 가리키는 것'이다.
분기란?이것에 관해서 나는 이 사이트가 매우 이해하기 쉬워서 참고할 수 있다고 생각한다.
분기란?지침은 무슨 뜻입니까?
cloud9User:~/environment/hello_app (main) $ git co -b modify-README #一時的なブランチを作成
Switched to a new branch 'modify-README'
cloud9User:~/environment/hello_app (modify-README) $ git branch #存在するローカルブランチを一覧表示する
  main
* modify-README
설계를 진행하다
프로그램 설계란 정식 환경으로 옮겨 실제 완성된 프로그램이 작동할 수 있는 상태를 가리킨다.
디버깅을 위해 헤로쿠라는 이름의 루비 웹 애플리케이션용 초대 플랫폼을 사용했다.
Heroku의 설정
Gemfile을 열고 다음 코드를 추가합니다.
이를 통해 Rails가 PostgreSQL과 통신할 수 있도록 공식 환경에 pg gem(공식적으로 사용되는 gem)을 설치합니다.
(Heroku에서 PostgreSQL을 사용하기 위해)
group :production do
  gem 'pg', '1.1.4'
end
pggem는 정식으로 사용되기 때문에 로컬 환경에 설치하지 않기 위해 아래 설정을 한 후gem를 설치합니다.
cloud9User:~/environment/hello_app (modify-README) $ bundle _2.2.17_ config set --local without 'production'
cloud9User:~/environment/hello_app (modify-README) $ bundle _2.2.17_ install
Fetching gem metadata from https://rubygems.org/............
Resolving dependencies...
Using rake 12.3.3
Using concurrent-ruby 1.1.9
Using i18n 1.8.11
Using minitest 5.15.0
Using thread_safe 0.3.6
・
・
・
이어 pggem을 추가했다.Gimfile.lock에 반영됩니다.
(이렇게 하지 않으면 공식 환경의 디자인이 실패할 것이다.)
commiit 옵션 a는 all의 생략입니다.
 
cloud9User:~/environment/hello_app (modify-README) $ git commit -a -m "Update Gemfile for Heroku"
[modify-README bb0b3cf] Update Gemfile for Heroku
2 files changed, 8 insertions(+), 1 deletion(-)
Heroku의 설치
heroku의 버전을 확인하십시오. 설치되지 않으면 설치하십시오.
cloud9User:~/environment/hello_app (modify-README) $ heroku --version

Command 'heroku' not found, but can be installed with:

sudo snap install heroku

cloud9User:~/environment/hello_app (modify-README) $ source <(curl -sL https://cdn.learnenough.com/heroku_install)
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 31.6M  100 31.6M    0     0  70.5M      0 --:--:-- --:--:-- --:--:-- 70.4M
사전 준비로 브라우저와 Heroku를 사용하여 SignUp을 미리 검색합니다.
여기에 등록된 메일 주소와 비밀번호를 사용하여 터미널에 다음과 같은 내용을 입력하세요.
cloud9User:~/environment/hello_app (modify-README) $ heroku login --interactive
heroku: Enter your login credentials
Email: 登録したメールアドレス
Password: **********
Logged in as 〇〇
서버 시작
서버가 rails로 일어서다.
요점은 먼저 cd를 통해 응용 프로그램 이름의 분배로 이동한 다음 다른 터미널 탭을 열어 서버를 시작하는 것이다.
cloud9User:~/environment $ cd hello_app
cloud9User:~/environment/hello_app (master) $ rails server  #sでもserverでも起動できる
=> Booting Puma
=> Rails 6.0.3 application starting in development 
=> Run `rails server --help` for more startup options
warning ../../package.json: No license field              
Puma starting in single mode...
* Version 4.3.6 (ruby 2.6.3-p62), codename: Mysterious Traveller
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://127.0.0.1:8080
* Listening on tcp://[::1]:8080
Use Ctrl-C to stop
heroku에서 프로그램의 실행 위치를 만듭니다
실제 디버깅을 만드는 곳입니다.
cloud9User:~/environment/hello_app (modify-README) $ heroku create
Creating app... done, ⬢ ~~~~
https://~~~~~.herokuapp.com/ | https://git.heroku.com/~~~~~.git
실제 설계
튜토리얼을 따라git push herokumain (튜토리얼에서 마스터) 을 실행하면
다음 오류가 발생했습니다.
cloud9User:~/environment/hello_app (modify-README) $ git push heroku main
기본 확인
rails는 MVC 모델과 비슷하여 화면을 표시하는 View, 조작을 담당하는 Controller, View와 Controller 간의 연결 루트 3개가 필요하다.
하나하나 확인하다.
View 확인
애플리케이션의 첫 페이지 화면 표시
응용 프로그램 생성
rails generate controller home top
local/home/top에 접근할 때 rails의 초기 화면을 표시하지 않고 응용 프로그램의 화면을 표시합니다.
이 상태에서 경로명만 기재돼 외로움을 느낀다.
응용 프로그램의 첫 페이지 화면 다시 쓰기
기본 화면을 다시 씁니다.
app/views/home/top.html.erb 파일을 열고 HTML을 씁니다.
파일의 확장자는 erb이지만 HTML을 기록할 수 있습니다.
Controller 확인
app/controllers/home_controller.rb를 열다.
여기에 top 화면을 표시하는 top 동작을 정의합니다.
라우팅 확인
라우팅이란 보내는 URL에 대해'어느 컨트롤러의 어떤 동작'으로 처리를 결정하는'대응 표'다.
브라우저에 입력한 URL을 식별하고 적절한 Controller에 연결합니다.
get "URL" => "コントローラー名#アクション名"
위에서 말한 바와 같다.rb에 기재되어 있으면 URL을 식별할 수 있습니다.
반대로 여기에 기재되지 않은 URL은 잘못된 것이다.
공통 CSS 기록
머리글과 꼬리 등 공통된 CSS를 쓰려면 app/asssets/stylesheets/home을 쓰십시오.scss에 기재합니다.
이미지 삽입
PC에 이미지를 저장할 때는 public에 저장합니다.
사용 방법은 일반적인 CSS와 마찬가지로 각} 파일에서 지정할 수 있습니다.scss에서 배경 그림 등으로 지정합니다.
공공에 저장된 경우 일반적인 이미지 이름을 지정할 때/이미지 이름을 지정해야 합니다.
첫 페이지의 URL 변경
첫 페이지 URL(localhost:3000 등 뒤에/00이 없는 URL)에 대한 경로
URL에 get/=> Controller 이름 # 작업 이름 과 같은/를 지정합니다.
또한 루트(/)의 경우 루트 "Controller 이름 # 동작 이름"을 지정할 수도 있습니다.
routes.rb
Rails.application.routes.draw do
  # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html
get "/" => "application#hello"
#もしくは  root 'application#hello'
end

좋은 웹페이지 즐겨찾기