[Rails] 웹 에서 데이터 주고 받기
- ETC../Rails
- 2020. 10. 21.
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.rb
의 home/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 을통해 데이터를 전달하는 과정
- view(클라이언트)에서 controller(서버)로 데이터 전송
- 클라이언트에서 보낸 데이터를 controller에서 추출
- controller에서 응답한 데이터를 연결된 view에서 출력
이 과정에서 사용된 메서드와 문법은 아래와 같습니다.
form
: html에서 서버로 값을 전달params
: 클라이언트에서 보낸 요청 정보를 controller에서 추출@변수
: 인스턴스 변수, action에서 사용하면 연결된 view에서 사용가능<% = %>
: erb파일에서 사용하며, 괄호 안의 Ruby 코드 사용 가능
728x90
'ETC.. > Rails' 카테고리의 다른 글
[Rails] CRUD 기능 구현(Creat / Read)[2] (0) | 2020.10.22 |
---|---|
[Rails] CRUD 기능 구현(환경 설정 하기)[1] (0) | 2020.10.22 |
[Rails] Rails App 구조(File Tree 설명) (0) | 2020.10.21 |
[Rails] 웹 동작 방식(HelloWorld) (0) | 2020.10.20 |
[Rails] 웹 동작 방식(서버 측, 클라이언트 측 입장 분석) (0) | 2020.10.20 |