в других ответах упоминают вы можете проверить текущую страницу, исследуя request
объект или params
хэш.
Но есть лучший способ настроить метатеги Facebook без явной проверки контекста страницы. content_for
Хелпер-метод - идеальный хит здесь. См. Документы здесь: http://api.rubyonrails.org/classes/ActionView/Helpers/CaptureHelper.html#method-i-content_for
В принципе, content_for
принимает блок как аргумент и фиксирует вывод, который может отображаться в другом месте с помощью yield
.
Таким образом, вы можете захватить некоторое содержание в ваших просмотров:
# index.html.erb (blog index)
<% content_for :facebook_meta do %>
<meta content='My blog' property='og:site_name'>
...
<% end %>
# show.html.erb (single blog post)
<% content_for :facebook_meta do %>
<meta content='<%= @post.title %>' property='og:site_name'>
...
<% end %>
и отображать их в макете:
# application.html.erb (application layout)
<html>
<head>
<%= yield :facebook_meta %>
</head>
</html>
выше, является гораздо чище, чем проверка регулятора тока/действия в этом сценарии. Вы определяете только метатеги Facebook в местах, где они применяются.
Должен, вероятно, предоставить короткий пример кода или ссылки API. –
уже включил API doc;) –
Буду признателен, если вы могли бы помочь мне с самим кодом. Я совершенно новый с RoR в целом. Вот пример URL-адреса, когда просматривается сообщение в блоге: http://my-site.herokuapp.com/blog/posts/junior-dos-santos. «junior-dos-santos» - это заголовок сообщения, я считаю, что «блог» - это контроллер, и действие «постов» (я не уверен в контроле и действии) – Dantes