[Rails] 웹 에서 데이터 주고 받기

728x90

서버로 데이터 전달하기


$ rails g controller home form next

터미널을 실행하면 자동으로 rout, controller, view에서 알아서 파일을 생성해줍니다.

home_controller의 form 과 next 액션으로

 

<h3>
    데이터 전송하기
</h3>

<form action="/home/next" method="GET">
    <input type="text" name="data_1">
    <button>
        제출
    </button>
</form>

코드 작성시 실행하면 config/routes.rbhome/next 코드로인해 form 에서 작성된 데이터는 home controller 의 next action으로 넘어가게 됩니다.

View → Controller


Controller → View

form 에서 보낸 데이터를 next action에서 view로 전달

class HomeController < ApplicationController
  def form
  end

  def next
    @data = params[:data_1]
  end
end

@data = params[:data_1]

를 통해 form 에서 던진 데이터를 받았습니다. parmas은 클라이언트에서 보낸 요청을 확인하는 메서드로 추출할 수 있는 데이터는 다음과 같습니다.

위에서 작성한 코드는 쿼리 파라미터의 경우이기 때문에 params로 data를 추출하였습니다.

추출한 데이터는 @data 에 담겼습니다. (인스턴스 변수) → action과 연결되어있는 next로 이동


<h3>
    받은 데이터
</h3>

<p>
    <%= @data %>
</p>

<%= @data %> 코드는 erb 파일에서 사용할 수 있는 문법으로, <% = %>안의 Ruby 문법을 실행합니다.

따라서 정의 했던 data로 인해 컨트롤러와 뷰가 연결된 것을 확인할 수 있습니다.


정리

form 을통해 데이터를 전달하는 과정

  1. view(클라이언트)에서 controller(서버)로 데이터 전송
  2. 클라이언트에서 보낸 데이터를 controller에서 추출
  3. controller에서 응답한 데이터를 연결된 view에서 출력

이 과정에서 사용된 메서드와 문법은 아래와 같습니다.

  1. form : html에서 서버로 값을 전달
  2. params : 클라이언트에서 보낸 요청 정보를 controller에서 추출
  3. @변수 : 인스턴스 변수, action에서 사용하면 연결된 view에서 사용가능
  4. <% = %> : erb파일에서 사용하며, 괄호 안의 Ruby 코드 사용 가능
728x90

댓글

Designed by JB FACTORY