복붙노트

[RUBY-ON-RAILS] 레일 : 어떻게 페이지의 제목을 변경하려면?

RUBY-ON-RAILS

레일 : 어떻게 페이지의 제목을 변경하려면?

플러그인-A를 사용하지 않고 레일 응용 프로그램의 페이지에 대한 사용자 지정 제목을 만들 수있는 가장 좋은 방법은 무엇입니까?

해결법

  1. ==============================

    1.귀하의 의견에 같은 것을 할 :

    귀하의 의견에 같은 것을 할 :

    <% content_for :title, "Title for specific page" %>
    <!-- or -->
    <h1><%= content_for(:title, "Title for specific page") %></h1>
    

    다음은 레이아웃 파일에 간다 :

    <head>
      <title><%= yield(:title) %></title>
      <!-- Additional header tags here -->
    </head>
    <body>
      <!-- If all pages contain a headline tag, it's preferable to put that in the layout file too -->
      <h1><%= yield(:title) %></h1>
    </body>
    

    (다른 사람이 이미 제안으로) 도우미 메서드에 문 : (제목) 그것은 content_for 및 수율을 캡슐화하는 것도 가능합니다. 그러나, 이와 같은 간단한 경우에 나는 정의 도우미없이 특정 뷰에 직접 필요한 코드를 넣어 것을 좋아합니다.

  2. ==============================

    2.여기에 내가 사용하고자하는 간단한 옵션들

    여기에 내가 사용하고자하는 간단한 옵션들

    레이아웃에서

    <head>
      <title><%= @title %></title>
    </head>
    

    그리고 당신의 페이지 템플릿의 상단에 (첫 번째 줄)

    <% @title="Home" %>
    

    레이아웃이 렌더링되기 전에 때문에 레이아웃과 페이지 템플릿은 @ 제목을 구문 분석하는 방식 = "홈"평가된다.

  3. ==============================

    3.가장 좋은 방법은 사용 content_for이다.

    가장 좋은 방법은 사용 content_for이다.

    먼저, 헬퍼 방법 중 몇 가지를 추가 (예 : 응용 프로그램 / 헬퍼 / application_helper.rb의 막대기를.)

    def page_title(separator = " – ")
      [content_for(:title), 'My Cool Site'].compact.join(separator)
    end
    
    def page_heading(title)
      content_for(:title){ title }
      content_tag(:h1, title)
    end
    

    그런 다음 레이아웃에 간단히 사용할 수 있습니다보기 :

    <title><%= page_title %></title>
    

    ... 그리고보기에서 자체 :

    <%= page_heading "Awesome" %>
    

    이 방법을 사용하면 제목의 H1 태그를 부착 위치를 셔플 할 수있는 장점을 가지고 있으며, 컨트롤러의 좋은 성가신 @title 변수의 자유를 유지합니다.

  4. ==============================

    4.@opsb를 개선하고 FouZ의 @의 더 완전한 형태 :

    @opsb를 개선하고 FouZ의 @의 더 완전한 형태 :

    application.html.erb에서 :

    <title><%= @title || "Default Page Title" %></title>
    

    보기 ERB 파일 또는 컨트롤러에서 :

    <% @title = "Unique Page Title" %>
    
  5. ==============================

    5.content_for로 봐 : http://railscasts.com/episodes/8

    content_for로 봐 : http://railscasts.com/episodes/8

  6. ==============================

    6.더 유스 케이스에 대한 세부 사항이나 요구 사항이 없으면 당신이 만족시키기 위해 노력하고 있음을, 나는 몇 가지 대안을 생각할 수 있습니다 :

    더 유스 케이스에 대한 세부 사항이나 요구 사항이 없으면 당신이 만족시키기 위해 노력하고 있음을, 나는 몇 가지 대안을 생각할 수 있습니다 :

    1) 레이아웃 페이지 중 하나에 제목을 전환하고 application_helper.rb에 저장된 도우미 메서드를 소비

    <title><%= custom_title %></title>
    

    이 방법을 사용하면 각 레이아웃 페이지에 고유 한 제목을 제공 할 것입니다.

    2) Railscasts는 HEAD 태그 사이에 나타 무엇을로드하는 부분을 사용하여 제안

    당신이로드 이벤트 후 제목을 변경해야하는 경우 3)를 사용하여 자바 스크립트 / 아약스 호출은 DOM을 조작합니다.

    아마 당신은 정말 제목 요소에 의해 태그의 내용을 변경하지 않습니다. 아마 당신은 정말 그들이 당신의 사이트의 탐색 계층 구조에 대한 어디에 사용자가 항상 알고 그래서, 어떤 종류의 이동 경로가 필요합니다. 반드시 동일한 기능을 당기의 다른 방법이 내가 어떻게 골드버그 플러그인을 완료 벌금을했습니다 동안, 난입니다.

  7. ==============================

    7.내가 사용하여 페이지에 다음 호출 할 수있는 타이틀 변수로 제공 nifty_generator의 "nifty_layout"를 사용 :

    내가 사용하여 페이지에 다음 호출 할 수있는 타이틀 변수로 제공 nifty_generator의 "nifty_layout"를 사용 :

    <% 제목 "페이지의 제목"%>

    또한 사용자 <% 제목은 거짓 % "페이지의 제목은"> 제목 그냥 브라우저 제목이 아닌 페이지 자체에 표시해야 할 수 있습니다.

  8. ==============================

    8.또한 컨트롤러에 before_filter에서 설정할 수 있습니다.

    또한 컨트롤러에 before_filter에서 설정할 수 있습니다.

    # foo_controller.rb
    
    class FooController < ApplicationController
    
      before_filter :set_title
    
      private
    
      def set_title
        @page_title = "Foo Page"
      end
    
    end
    
    # application.html.erb
    
    <h1><%= page_title %></h1>
    

    그런 다음 컨트롤러에서 다른 작업에 대해 서로 다른 제목을 설정하는 set_title 방법에 조건을 설정할 수 있습니다. 그것은 당신의 컨트롤러 내에서 모든 관련 페이지 제목을 볼 수있을 것이 좋다.

  9. ==============================

    9.가장 좋은 / 깨끗한 방법은이 작업을 수행합니다 :

    가장 좋은 / 깨끗한 방법은이 작업을 수행합니다 :

    <title><%= @page_title or 'Page Title' %></title>
    
  10. ==============================

    10.나는 내가 쓴이 레일 헬퍼 플러그인이 사용 http://web.archive.org/web/20130117090719/http://henrik.nyh.se/2007/11/my-rails-title-helpers/

    나는 내가 쓴이 레일 헬퍼 플러그인이 사용 http://web.archive.org/web/20130117090719/http://henrik.nyh.se/2007/11/my-rails-title-helpers/

  11. ==============================

    11.content_for 방법 및 부분을 사용하여 페이지 제목에 대한 접근

    content_for 방법 및 부분을 사용하여 페이지 제목에 대한 접근

    1 . 부분 이름 : _page_title.html.erb

    <%content_for :page_title do %>
     <%=title%>
    <%end%>
    

    2. application.html.erb 내부 제목 태그에 사용

       <title><%=yield :page_title %></title>
    

    삼 . 각각의 * .html.erb 제외 application.html.erb에 사용       그냥 페이지의 .html.erb 및 공급 제목이 막대기

        e.g : inside index.html.erb
    
        <%=render '_page_title', title: 'title_of_page'%>
    
  12. ==============================

    12.즉, 나는 다음과 같은이 아래를 쓸 수 있습니다

    즉, 나는 다음과 같은이 아래를 쓸 수 있습니다

    <%content_for :page_title do %><%= t :page_title, "Name of Your Page" %> <% end %>
    
  13. ==============================

    13.나는 opsb의 방법처럼,하지만이 방법도 사용할 수 있습니다.

    나는 opsb의 방법처럼,하지만이 방법도 사용할 수 있습니다.

    <% provide(:title,"ttttttttttttttttttZ") %>
    <html>
      <head><title><%= yield(:title) %></title></head>
       <body></body>
    </html>
    
  14. ==============================

    14.나는 나의 아주 간단 변형을 추가하고 싶습니다.

    나는 나의 아주 간단 변형을 추가하고 싶습니다.

    와 ApplicationController에서이 방법을 정의한다 :

      def get_title
        @action_title_name || case controller_name
                                when 'djs'
                                  'Djs'
                                when 'photos'
                                  'Photos'
                                when 'events'
                                  'Various events'
                                when 'static'
                                  'Info'
                                when 'club'
                                  'My club'
                                when 'news'
                                  'News'
                                when 'welcome'
                                  'Welcome!'
                                else
                                  'Other'
                              end
      end
    

    그 후 당신은 당신의 레이아웃의 제목 태그에서 get_title 호출 할 수 있습니다. 당신은 당신의 행동에 @action_title_name 변수를 정의하여 페이지에 대한보다 구체적인 제목을 정의 할 수 있습니다.

  15. from https://stackoverflow.com/questions/185965/rails-how-to-change-the-title-of-a-page by cc-by-sa and MIT license