포맷별로 처리를 나누기 위해 컨트롤러의 index 액션을 편집한다
def index
@users = User.search(params[:keyword])
respond_to do |format|
format.html
format.json
end
end
여기서 respond_to란 ?
액션중에 HTML과 JSON등의 포맷별로 html인지 json인지 조건을 분기하는 것이 가능하다.
jbuilder 파일의 작성과 편집하는 방법
경로 : app/views/~~/index.json.jbuilder
json.array! @users do |user|
json.id user.id
json.name name.name
end
jbuilder라고 하는 확장자를 갖는 템플릿에서는 JSON이라고 하는 이름의 Jbuilder오브젝트가 자동적으로 이용가능하도록 된다.
array 메소드는 그중에 하나로 JavaScript쪽에 배열로 보내는 것이 가능하다.
search.js의 작성과 편집
$(function() {
$(".search_input").on("keyup", function() {
var input = $(".search_input").val();
// ㅡㅡㅡ여기를 주목ㅡㅡㅡ
$.ajax({
type: 'GET',
url: '/users/searches',
data: { keyword: input },
dataType: 'json'
})
// ㅡㅡㅡ 여기까지 주목 ㅡㅡㅡ
});
});
Ajax통신을 표현하기위해 위의 코드와 같이 $.ajax메소드를 이용하였다.
또 위의 코드는 HTTP 메소드는 GET로 /users/search의 URL에 {keyword:input}를 전송. 서버에서 값을 반환할 때는 JSON을 이라는 의미를 갖는다. JSON 형식의 경우에는 app/views/~~/index.json.jbuilder가 읽혀 해당하는 투고 정보는 jbuilder에 의해 JSON에 변환되어진 JavaScript파일에 반환된다.
간단정리
json이어디서 사용되는지 확인하였다. 그러나 조금 더 확인 할 필요가 있다고 판단하여 자료를 조금 더 번역할 예정이다. 다음에는 json파일을 어떻게 다루는지에 대한 기초를 번역할 예정이다.
https://pikawaka.com/rails/json텍스트
ㅡㅡ 2021.02.26