2014-06-07 1 views
-2

나는RoR 애플리케이션의 모든 페이지에 사용자 정의 텍스트를 배치하는 가장 좋은 방법은 무엇입니까?

SEO 녀석들이 내 웹 사이트의 모든 페이지에 고유 한 사용자 정의 텍스트를 배치 할 필요가 있다는 얘기 등 제품 컨트롤러, 정적 페이지 컨트롤러와 루비 온 레일즈에 전자 상거래 웹 사이트를 가지고있다.

아무에게도이 말을하기에 가장 좋은 방법이 있습니까?

내 마음에는 여기에 한 가지 방법이 있습니다. 모든 모델에 SEO 관련 텍스트 필드를 추가하십시오. 그러나 목록 (제품 목록 및 검색 결과 등)이 약간 어색해 보입니다.

미리 감사드립니다.

upd.

  • SEO 텍스트는

  • SEO 텍스트 그래서 난 정적 부분 지문을 사용할 수 없습니다 모든 페이지에 대해 고유 것 등 제품, 정적 페이지와 같은 관리 패널에 입력해야합니다. 내가 그 생각할 수

+0

정확히 무엇을 의미합니까? 어디서나 같은 텍스트 또는보기에 따라 다릅니 까? 그것이 "제품 쇼"일 때, 그것은 항상 같은 텍스트 일 ​​것입니까? –

+0

모든 텍스트는 고유해야합니다. 질문에 대한 자세한 내용을 추가했습니다. – Konstantin

+0

아마도 당신의 서구 사람들이 묻는 것이 말이되지 않거나 잘못 해석 한 것일까 요? –

답변

1

유일한 해결책은, 당신의 질문을 이해하는 것과 가까이하는 것은 매우 일반적하고 막연하게 제기 각 뷰에서 템플릿에 변수를 산출하는 것입니다 제공합니다.

예를 들어 머리글의 메타 태그에이 ... 텍스트를 추가하려는 경우 application.html.erb (레이아웃에 다른 이름이있을 수 있음)에 추가 (이 설명을 사용하면 내 "서재응 "너희들은) 텍스트를 넣어 위치를 알 수 있습니다 :

<head> 
    <!-- ... --> 
    <meta name="description" content="<%= yield(:seo_text) %>"> 

그리고이 다음 각 템플릿 :

<% provide(:seo_text, "this is the text I want to provide for this template, it can be different on each template" %> 

그런 다음, 각 페이지는이 예에서 자신의 seo_text (설명 메타 태그를해야합니다).

이것은 데이터베이스 테이블의 필드에서 오는 각 인스턴스마다 다른 컨트롤러에서 제공 될 수도 있습니다. 예를 들어, show 행동 show.html.erb에서 다음

def show 
    @seo_text = @item.seo_text 
    ... 
end 

그리고,에 :

<% provide(:seo_text, @seo_text) %> 
관련 문제