[RUBY-ON-RAILS] 레일에서, 당신은 어떻게 뷰를 사용하여 JSON 렌더링합니까?
RUBY-ON-RAILS레일에서, 당신은 어떻게 뷰를 사용하여 JSON 렌더링합니까?
당신이 당신의 사용자가 컨트롤러에있어 귀하는 귀하의 의견 / 사용자 / 디렉토리라는 show.json과 사용자 번호 표시 후 파일을 만들 수 있다면 쇼 요청에 대한 JSON 응답, 그것은 좋은 것 싶어한다고 가정 작업은 파일을 렌더링 완료됩니다.
현재 당신의 라인을 따라 뭔가를 할 필요가 :
def show
@user = User.find( params[:id] )
respond_to do |format|
format.html
format.json{
render :json => @user.to_json
}
end
end
그냥 자동과 같이 렌더링 가져옵니다 show.json 파일을 만들 수 있다면 그러나 그것은 좋은 것입니다 :
def show
@user = User.find( params[:id] )
respond_to do |format|
format.html
format.json
end
end
이것은 나에게 슬픔의 톤을 절약 할, 내가 얻을 무섭게 더러운 느낌이 나는 컨트롤러 내 JSON을 렌더링 할 때 씻어 것
해결법
-
==============================
1.당신은 당신의 respond_to 블록에서 같은 것을 할 수 있어야한다 :
당신은 당신의 respond_to 블록에서 같은 것을 할 수 있어야한다 :
respond_to do |format| format.json render :partial => "users/show.json" end
어떤 응용 프로그램 / 뷰 / 사용자 / _show.json.erb에서 템플릿을 렌더링합니다.
-
==============================
2.뷰 사용자를 추가하십시오 / 당신이 JSON 형식에 대한 요청을 할 때이 렌더링해야 show.json.erb하고 파일을 다음과 같이 보일 수 있도록 당신은 너무가 ERB에 의해 렌더링되는의 추가 혜택을받을
뷰 사용자를 추가하십시오 / 당신이 JSON 형식에 대한 요청을 할 때이 렌더링해야 show.json.erb하고 파일을 다음과 같이 보일 수 있도록 당신은 너무가 ERB에 의해 렌더링되는의 추가 혜택을받을
{ "first_name": "<%= @user.first_name.to_json %>", "last_name": "<%= @user.last_name.to_json %>" }
-
==============================
3.다른 사람이 언급 한 것처럼 당신은 사용자 / show.json보기를 필요로하지만, 템플릿 언어를 위해 고려해야 할 옵션이 있습니다 ...
다른 사람이 언급 한 것처럼 당신은 사용자 / show.json보기를 필요로하지만, 템플릿 언어를 위해 고려해야 할 옵션이 있습니다 ...
ERB
상자 밖으로 작동합니다. HTML에 대한 좋아요,하지만 당신은 빨리이 JSON에 대한 끔찍한 찾을 수 있습니다.
RABL
좋은 솔루션입니다. 종속성을 추가하고 DSL을 배울 수있다.
JSON 빌더
RABL 동일 거래 : 좋은 솔루션입니다. 종속성을 추가하고 DSL을 배울 수있다.
일반 루비
루비는 JSON을 생성에서 최고이며 해시 또는 AR 오브젝트에 to_json 호출 할 수있는 새로운 것을 배울 필요가 없습니다. 간단하게 (이니셜 라이저에서) 템플릿에 대한 .rb 확장을 등록 :
ActionView::Template.register_template_handler(:rb, :source.to_proc)
그런 다음 뷰 사용자 / show.json.rb을 만듭니다
@user.to_json
이 방법 볼에 대한 추가 정보를 원하시면 http://railscasts.com/episodes/379-template-handlers
-
==============================
4.RABL은 아마 당신 ERB 구문에 청소기 대안을 찾고 있다면 내가 본 것을 이것에 가장 좋은 솔루션입니다. 다른 솔루션입니다 json_builder와 모험가는 모두 다소 오래된 것, 일부 패치없이 레일 3.1 작동하지 않습니다.
RABL은 아마 당신 ERB 구문에 청소기 대안을 찾고 있다면 내가 본 것을 이것에 가장 좋은 솔루션입니다. 다른 솔루션입니다 json_builder와 모험가는 모두 다소 오래된 것, 일부 패치없이 레일 3.1 작동하지 않습니다.
RABL는 보석을 통해 볼 수 있습니다 또는 GitHub의 저장소를 체크 아웃; 좋은 예도
https://github.com/nesquena/rabl
-
==============================
5.그냥이 페이지에 끝날 일이 다른 사람의 이익을 위해이 대답을 업데이트합니다.
그냥이 페이지에 끝날 일이 다른 사람의 이익을 위해이 대답을 업데이트합니다.
레일 3에서, 당신은 단지보기 / 사용자 / show.json.erb에서 파일을 작성해야합니다. @user 객체는 뷰에 사용할 수 있습니다 (이 HTML에 대한 것처럼.) 당신은 더 이상 to_json 필요하지 않습니다.
요약하면, 그것은 단지
# users contoller def show @user = User.find( params[:id] ) respond_to do |format| format.html format.json end end
과
/* views/users/show.json.erb */ { "name" : "<%= @user.name %>" }
-
==============================
6.그냥 내용으로 show.json.erb 파일을 추가
그냥 내용으로 show.json.erb 파일을 추가
<%= @user.to_json %>
당신은 JSON에서 추가 속성을 생성하기 위해 몇 가지 추가 도우미 컨트롤러에서 사용할 수없는 방법, 즉 IMAGE_PATH (@ user.avatar) 또는 무언가를 필요로 할 때 때때로 유용합니다 :
<%= @user.attributes.merge(:avatar => image_path(@user.avatar)).to_json %>
-
==============================
7.이것은 잠재적으로 더 나은 옵션과 빠른 ERB 이상 : https://github.com/dewski/json_builder
이것은 잠재적으로 더 나은 옵션과 빠른 ERB 이상 : https://github.com/dewski/json_builder
-
==============================
8.임 RoR에 새로운 이것이 내가 알아 낸 것입니다. 당신은 직접 JSON 형식을 렌더링 할 수
임 RoR에 새로운 이것이 내가 알아 낸 것입니다. 당신은 직접 JSON 형식을 렌더링 할 수
def YOUR_METHOD_HERE users = User.all render json: {allUsers: users} # ! rendering all users END
from https://stackoverflow.com/questions/2088280/in-rails-how-do-you-render-json-using-a-view by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 여러 열 유효성 검사 고유성 (0) | 2020.02.09 |
---|---|
[RUBY-ON-RAILS] 액션 당 레이아웃 레일? (0) | 2020.02.09 |
[RUBY-ON-RAILS] 다른 컨트롤러 내의 고안 양식 (0) | 2020.02.09 |
[RUBY-ON-RAILS] 신선한 레일 프로젝트에서 SQLite는에서 PostgreSQL을로 변경 (0) | 2020.02.09 |
[RUBY-ON-RAILS] 루비 온 레일즈. 어떻게이에서 액티브 레코드 .build 방법을 사용하십시오 관계에 속하는? (0) | 2020.02.09 |