나 자신이 자주 HTML HEAD와 다른 곳에서 다음과 같은 코드를 작성하는 것을 알게되었습니다.보기에서 조건부로 정보를 표시하는 더 좋은 방법은 무엇입니까?
<% if @canonical_url %>
<link rel="canonical" href="<%= @canonical_url %>"/>
<% end %>
그런 다음 컨트롤러에 변수를 설정합니다.
같은 줄을 한 줄로 쓰거나 코드를 구성하는 다른 방법이 있습니까?
나 자신이 자주 HTML HEAD와 다른 곳에서 다음과 같은 코드를 작성하는 것을 알게되었습니다.보기에서 조건부로 정보를 표시하는 더 좋은 방법은 무엇입니까?
<% if @canonical_url %>
<link rel="canonical" href="<%= @canonical_url %>"/>
<% end %>
그런 다음 컨트롤러에 변수를 설정합니다.
같은 줄을 한 줄로 쓰거나 코드를 구성하는 다른 방법이 있습니까?
좋아, 나는이 해결책을 내놓았다. 다음 헬퍼 메소드
<%= show_if('<link rel="canonical" href="$1"/>', @canonical_url) %>
그리고 : 템플릿에서
#
# Return the template text if the variable has a value.
#
def show_if(template, variable)
if variable
template.gsub('$1', variable)
else
''
end
end
나는 당신이하려고하는 것이 무엇인지 결정하기 위해 좀 더 문맥을 필요 했어. 귀하가 제공 한 정보를 바탕으로 canonical-url plugin for Rails을 살펴 보시기 바랍니다.
def if_value(value, &block)
if value
concat(capture(value, &block))
end
end
<% if_value(@canonical_url) do |value| %>
<link rel="canonical" href="<%= value %>"/>
<% end %>
죄송합니다. 이중 응답으로 SO는 하나의 URL 만 게시하도록 허용합니다.
또는 레이아웃에이 콘텐츠를 표시하려는 content_for in your views을 사용하여 문제를 해결할 수도 있습니다.