루비[초보자용] & 자신의 필기용 튜토리얼 형식으로

11553 단어 Ruby

이 기사를 쓴 목적


나는 먼저 초심으로 돌아가고 싶다.현재 나는 대학 3학년 학생이어서 상황이 매우 좋아서 하루 종일 집에 있다.집에 있는 것도 시간 낭비니까 지금까지 배운 걸 정리하고 싶어요.그중의 하나가 바로 이 보도다.쓴 내용은 rails의 기본 부분에 대한 해설 & 실제 앱 만들기 같은 간단한 일이다.아직 프로그램을 만들어 본 적이 없는 사람들을 대상으로 기술했다.나는 무엇을 한 사람에게는 너무 간단하다고 생각한다.
※ 환경 구축을 전제로 합니다.만약 잘못되면 다른 기사를 참고하여 노력하세요.검색하면 많이 찾을 수 있을 거예요.환경에서는 AWS의 Cloud9을 사용합니다.

폴더 생성 및 서버 시작


먼저 폴더를 만듭니다.이름은 뭐든지.종착역에 들어가세요.이번에 Sample이라는 폴더를 만들었어요.
mkdir sample
다음에 디렉터리를 현재 만든 폴더로 이동합니다.Sample의 부분을 자신이 만든 폴더 이름으로 변환하십시오.
cd sample
디렉터리를 이동할 수 있다면 프로그램을 만드세요.응용 프로그램을 만드는 명령은 다음과 같습니다.
rails バージョン new アプリケーション名
rails _5.2.4.1_ sample_app  //私はこれにしました。
gem list rails  //バージョンがわからない場合はこちらのコマンドを叩いて確認してみてください。
여기서 판본도 잘 모르시는 분들은 참고해주세요여기 기사..이해하기 쉽다.
순조롭게 제작될 수 있다면 목록을 변경하세요.sample_앱의 부분은 자신이 추가한 앱 이름입니다.
cd sample_app
디렉터리를 변경할 수 있다면 서버를 시작해 보십시오.bundle install여기 기사.에 대해서는 쉽게 이해할 수 있습니다.
bundle install
rails s     //サーバーの起動。
수수하게 나오네.

컨트롤러와 모형의 제작


이곳에서 컨트롤러와 모형을 제작한다.원래 컨트롤러와 모델이 무엇인지여기 기사.는 이해하기 쉬우니 참고하세요.
1행: todos라는 컨트롤러를 만들고 index, show, edit, new의view 페이지를 제작했다.
두 번째 줄: 토도라는 모형을 만들고 타이틀, 바디라는 열을 만들었다.
rails g controller todos index show edit new
rails g model todo title body
데이터베이스 저장해.다음 명령을 입력하십시오.
rails db:migrate
폴더가 생성되었는지 확인할 수 있을 것 같습니다.

라우팅 설정


다음에 경로를 설정합니다.index 페이지를 건너뛰고 싶어서 다음과 같이 경로를 설정합니다.get'todos/index'를 삭제하고 루트 to:'todos#index'로 변경합니다.또한 Resources를 사용하여 경로를 변경합니다.그리고 서버를 다시 시작해서 확인해 주세요.
route.rb
Rails.application.routes.draw do
  get 'todos/index'  → root to:'todos#index' に変更
  resources :todos
  # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
end
다음 그림을 보일 것 같습니다.

View 및 컨트롤러 설정


먼저 새 페이지를 만듭니다.이 페이지의 역할은 표로 실례를 만드는 것이다.컨트롤러를 만들 때 페이지를 동시에 만들 수 있기 때문에 index 페이지에 링크를 추가하여 new 페이지를 건너갑니다.링크는 다음과 같이 작성됩니다.
<%= link_to '文字列',ファイルへのパス%>
index.html.erb
<h1>Todos#index</h1>
<p>Find me in app/views/todos/index.html.erb</p>

<%= link_to 'new', new_todo_path %>
링크를 클릭하면 맛있게 먹을 수 있을 것 같아요.여기서부터 new 액션에 캐릭터를 부여하세요.컨트롤러에 새 new 동작을 추가합니다.그리고 다음 일을 쓰세요.create 작업도 편집합니다.다음은 플래시 파라미터라고 하는데 데이터가 안전한지 검증하고 있습니다.궁금하신 분들은 구글에 가보세요.많이 칠 것 같아서요.
todos_controller.rb
class TodosController < ApplicationController
  def index
  end

  def show
  end

  def edit
  end

  def new
    @todo = Todo.new
    # Todoモデルのインスタンスを作成する記述
    # 変数名 = モデル名.new
  end

  def create
        @todo = Todo.new(todo_params)

       #値が正しく保存された場合はindexページに遷移する。
       if @todo.save
        redirect_to todos_path

        #値が保存できなかった場合はnewページに遷移する。
        else
        redirect_to new_todo_path
       end
  end

  private

  def todo_params
      params.require(:todo).permit(:title,:body)
  end

end
컨트롤러가 편집을 마친 후 뷰를 편집하십시오.이번에는 실례적인view를 만들기 위해 다음과 같은 설정 형식을 설정했다.
new.html.erb
<h1>Todos#new</h1>
<p>Find me in app/views/todos/new.html.erb</p>

<%= form_for(@todo) do |f| %>

    <p>title</p>
    <%= f.text_field :title %>

    <p>body</p>
    <%= f.text_area :body %>
    <br>
    <%= f.submit 'create todo' %>
    <!--ここでcreateアクションが呼ばれる-->

<% end %>
인스턴스를 생성해도 표시되지 않으면 의미가 없습니다.표시하려면 먼저 컨트롤러를 편집하십시오.편집은 다음과 같습니다.이렇게 하면 모든 데이터를 얻을 수 있다.
todo_controller.rb
def index
   @todos = Todo.all  
end
아까처럼 뷰 편집해.이번에는 톨비 라벨로 표현해보겠습니다.편집 페이지와 Show 페이지의 링크를 동시에 만듭니다.
index.html.erb
<h1>Todos#index</h1>
<p>Find me in app/views/todos/index.html.erb</p>

<%= link_to 'new', new_todo_path %>

<table>

    <thead>
        <th>Title</th>
        <th>Body</th>
    </thead>

    <tbody>
        <% @todos.each do |todo| %>
            <tr>
                <td><%= todo.title %></td>
                <td><%= todo.body %></td>
                <td><%= link_to 'Show', todo_path(todo) %></td>
                <td><%= link_to 'Edit', edit_todo_path(todo) %></td>
            </tr>
        <% end %>
    </tbody>

</table>
다음은 Show 페이지를 편집합니다.이것은 투고 실례를 상세하게 보는 페이지다.컨트롤러를 먼저 편집합니다.특정 데이터를 얻기 위한 기술이다.
todo_controller.rb
def show
    @todo = Todo.find(params[:id])
end
다음 편집view.타이틀과 바디가 보이기 때문에 다음과 같이 기술합니다.
show.html.erb
<h1>Todos#show</h1>
<p>Find me in app/views/todos/show.html.erb</p>


<b>Title :</b>
<p><%= @todo.title %></p>
<!--titleを表示-->

<b>Body :</b>
<p><%= @todo.body %></p>
<!--bodyを表示-->

<%= link_to "edit", edit_todo_path(@todo) %> 
|
<%= link_to "back", todos_path %>
다음에 편집 페이지를 만듭시다.이것은 편집이 실례를 만드는 페이지입니다.이를 위해 먼저 실례적인 id를 얻습니다.그리고 업데이트 동작으로 실례를 업데이트합니다.업데이트 동작을 할 때도 빨대 파라미터를 매개 변수로 너에게 주는 것을 잊지 마라.
todo_controller.rb
def edit
    @todo = Todo.find(params[:id])
end


def update
      todo = Todo.find(params[:id])
      todo.update(todo_params)
      redirect_to todos_path
end
다음 편집view.실례를 편집하기 위해 창을 설정합니다.그리고 수치는 현재 저장된 값을 줄 겁니다.
edit.html.erb
<h1>Todos#edit</h1>
<p>Find me in app/views/todos/edit.html.erb</p>


<h1>Editing Todo</h1>
<%= form_for(@todo) do |f| %>
    <p>Title</p>
    <%= f.text_field :title %>
    <p>Body</p>
    <%= f.text_area :body %>
    <br>
    <%= f.submit 'update todo' %>    
<% end %>

<%=link_to 'show', todo_path(@todo.id) %>
    |
<%= link_to 'back', todos_path %>
마지막으로 추가된 기능은destroy 동작입니다.이것은 생성 실례를 삭제하는 기능입니다.동작은 다음과 같습니다.삭제할 실례의 id를 가져와 삭제합니다.
todo_controller.rb
def destroy
        todo = Todo.find(params[:id])
        todo.destroy
        redirect_to todos_path
end
view에 삭제할 기술을 추가합니다.만약 delete가 떨어진다면 삭제가 순조롭지 못할 수도 있으니 여기에 기술해 주십시오.
index.html.erb
<% @todos.each do |todo| %>
            <tr>
                <td><%= todo.title %></td>
                <td><%= todo.body %></td>
                <td><%= link_to 'Show', todo_path(todo) %></td>
                <td><%= link_to 'Edit', edit_todo_path(todo) %></td>
//この行を追加   <td><%= link_to 'Destroy', todo, method: :delete, data: { confirm: 'Are you sure?' } %></td> 
            </tr>
        <% end %>

완성!


비록 시간이 매우 길지만, 나는 이렇게 기본적인 일을 대체적으로 완성할 수 있다고 생각한다.수고하셨습니다.실제로 scaffold라는 기능을 사용하면 하나의 명령으로 만들 수 있다.궁금하시면 조사해 보세요.그럼 엔지니어 생활 즐겁게 하세요! (^^)/

좋은 웹페이지 즐겨찾기