반응형
Rails 컨트롤러에서 직접 HTML을 반환하는 방법은 무엇입니까?
내 모델 개체 중 하나에는 웹 페이지의 전체 HTML을 포함하는 '텍스트'열이 있습니다.
컨트롤러의 나머지 작업처럼 .erb 템플릿을 통해 전달하는 대신 컨트롤러에서 직접이 HTML을 반환하는 컨트롤러 작업을 작성하고 싶습니다.
내 첫 번째 생각은이 작업을 새 컨트롤러로 가져 와서 빈 레이아웃이있는 사용자 지정 .erb 템플릿을 템플릿에 만드는 것이 <%= modelObject.htmlContent %>
었지만 Rails에서이 작업을 수행하는 더 좋은 방법이 있는지 궁금했습니다.
컨트롤러 respond_to
블록에서 다음을 사용할 수 있습니다.
render :text => @model_object.html_content
또는:
render :inline => "<%= @model_object.html_content %>"
따라서 다음과 같습니다.
def show
@model_object = ModelObject.find(params[:id])
respond_to do |format|
format.html { render :text => @model_object.html_content }
end
end
최신 Rails (4.1.x)에서는 적어도 허용되는 답변보다 훨씬 간단합니다.
def show
render html: '<div>html goes here</div>'.html_safe
end
나를위한 작품
def show
@model_object = ModelObject.find(params[:id])
respond_to do |format|
format.html { render :inline => "<%== @model_object['html'] %>" }
end
end
참고 URL : https://stackoverflow.com/questions/1958759/how-to-return-html-directly-from-a-rails-controller
반응형
'Program Tip' 카테고리의 다른 글
admob이 광고 응답을받습니다. (0) | 2020.11.10 |
---|---|
인터페이스 메소드의 구현을 어떻게 빨리 찾을 수 있습니까? (0) | 2020.11.10 |
IE에서 Google Fonts를 작동시키는 방법은 무엇입니까? (0) | 2020.11.10 |
읽기 전용 모드로 vim의 탭에서 파일 열기 (0) | 2020.11.10 |
ListView getChildAt는 보이는 자식에 대해 null을 반환합니다. (0) | 2020.11.10 |