일부 템플릿으로 다른 컨트롤러 보기를 호출하는 방법

3664 단어 초보자RubyRails

입문


다른 파일의 보기에 다른 파일의 보기를 표시할 때,render로 이 보기를 부분적으로 호출할 수 있습니다.
다음은 일부 템플릿의 방법을 소개한다.

카탈로그

  • 일부 템플릿 파일의 이름
  • render에서 호출
  • 컨트롤러의 정의
  • 개발 환경


    ruby 2.6.5
    rails 6.0.0

    실시


    그러면 설치를 해볼게요.

    1. 일부 템플릿 파일의 이름 정보


    먼저 뷰 파일을 일부 템플릿으로 만들 때 파일 이름 앞에 (밑줄) 를 추가합니다(예: _index.html.erb.

    이번에는 제품 컨트롤러의 보기를 일부 템플릿으로 사용하고 싶어서 _ 가 되기 위해 파일 이름을 편집했습니다.

    2. 렌더로 호출


    다음은 템플릿의 한쪽 묘사 products/_index 격자입니다.
    이번에는 아래의 서술을 하겠습니다.
    app/views/tops/index.html.erb
    #省略
    <%= render partial: "products/index" %>
    
    문법 여기 있어요.
    render partial: コントローラー名/ファイル名
    
    partial 옵션은 일부 템플릿을 호출하는 데 사용됩니다.단지, 단지 강조할 뿐, 더하지 않아도 불러낼 수 있다.

    이렇게 하면 완성!!이렇게 생각하지만 이번render을 정의하여 제품 모델에서 데이터를 얻어 보기에 표시하기 때문에 tops 컨트롤러도 정의가 필요하다.

    3. 컨트롤러 정의


    저장된 데이터를 호출할 때 컨트롤러는 데이터를 @products 대입하여 보기에서 사용합니다.
    제품 컨트롤러로 움직이면 그쪽에서 정의インスタンス変数하지만 이번에는 tops 컨트롤러의 동작이 움직이기 때문에 그쪽에서 정의해야 합니다.
    app/views/products/_index.html.erb
    <h1>Products#index</h1>
    <p>Find me in app/views/products/index.html.erb</p>
    
    <div class="#">
      <% @products.each do |product|  %> #ここで@productsを定義してるので、コントローラーでも定義が必要です。
        <%= product.name %>
        <%= product.text %>
      <% end %>
    </div>
    
    @products 를 일부 템플릿으로 호출하기 때문에 호출 측products/_index.html.erb에서도 tops_contller.rb 정의가 필요합니다.
    app/contollers/tops_contller.rb
    class TopsController < ApplicationController
      def index
        @tops = Top.all
        @products = Product.all #部分テンプレートで_index.htmlを表示させる為の定義
    
      end
    
    이게 완성이야!!!

    총결산


    다음은 일부 템플릿의 절차입니다.
    용도에 따라 다른 방법이 있는데, 이번에는 이 방법으로 설치합니다.

    마지막


    저는 프로그래밍 초보자입니다. 저와 같이 엔지니어를 목표로 하는 여러분을 도와주고 싶어서 기사를 투고했습니다.
    그럼 다음에 또 만나요~

    좋은 웹페이지 즐겨찾기