2012-07-19 5 views
2

В моем приложении rails я хочу динамически подключать метатеги FB OG со страницей, на которой пользователь в данный момент включен. Я чувствую, что это должно быть просто, но не может заставить его работать правильно.Facebook OG Meta Tags в application.html.erb

Например, у меня есть страница «Идея», на которой есть название идеи и описание идеи.

В настоящее время в моем Application.html.erb файла у меня есть это (и я получаю NoMethodError за титул):

<meta property="og:title" content= <%= "#{@idea.title.titleize}" %>/> 
<meta property="og:url" content= <%= "http://myurl.com/ideas/#{@idea.id}" %>/> 
<meta property="og:description" content= <%= "#{@idea.short_description}" %>/> 

Есть ли проблема с моим синтаксисом? С наличием этих переменных экземпляра? Я не уверен, что полностью понимаю, как это работает. Благодаря!

ответ

1

Я считаю, что правильный синтаксис:

<meta property="og:description" content= "<%= @idea.short_description %>" /> 
8

Да, как упоминалось нуб, делает заявление, содержание быть в кавычках.

<meta property="og:description" content= "<%= @idea.short_description %>" /> 

Чтобы сделать эти мета-теги динамического в Rails, люди впервые начали использовать симпатичную метод заголовок страницы, описанный Ryan Bates в pretty page title railscast

Однако, я просто наткнулся этот мета-теги драгоценный камень, который выглядит чрезвычайно перспективны: meta-tags

С драгоценным камнем, управляйте любым метатегом, сделайте их динамичными и ориентированными на SEO. Пример:

set_meta_tags :title => 'Member Login' 
# <title>Some Page Title</title> 

Легко установить все фейсбук: OG теги сразу:

set_meta_tags :og => { 
        :title => 'The Rock', 
        :type  => 'video.movie', 
        :url  => 'http://www.imdb.com/title/tt0117500/', 
        :image => 'http://ia.media-imdb.com/rock.jpg', 
        :video => { 
        :director => 'http://www.imdb.com/name/nm0000881/', 
        :writer => ['http://www.imdb.com/name/nm0918711/', 'http://www.imdb.com/name/nm0177018/'] 
        } 
       } 

Приведенный выше код выдает следующий HTML, когда вы тогда звоните <%=display_meta_tags%>:

<meta property="og:title" content="The Rock"/> <meta property="og:type" content="video.movie"/> <meta property="og:url" content="http://www.imdb.com/title/tt0117500/"/> <meta property="og:image" content="http://ia.media-imdb.com/rock.jpg"/> <meta property="og:video:director" content="http://www.imdb.com/name/nm0000881/"/> <meta property="og:video:writer" content="http://www.imdb.com/name/nm0918711/"/> <meta property="og:video:writer" content="http://www.imdb.com/name/nm0177018/"/>

Многие другие примеры в исходном коде и github repo. Последний набор тегов имеет приоритет, поэтому, если вы установите его в своем макете, то другой на вашей странице, похоже, тот, который на странице будет иметь приоритет.

Если вы используете это, просто убедитесь, что у вас есть <%= display_meta_tags %> на вашей странице макета i.e. application.html.erb.

+0

Эй Дэнни, это Gem совместим с Rails 4? –

+0

Кажется, что (у меня не было никаких проблем и я обновился до рельсов 4), однако я не вижу никаких недавних коммитов, которые упоминают что-либо, что связано с рельсами 4, и это не указано в http://ready4rails4.net/ , – Danny

+0

Прохладный, Спасибо :) –

0

Прочтите мое сообщение в блоге, чтобы получить подробное объяснение простого способа заставить это работать в приложении rails в целом - возможно, вы можете экстраполировать его для добавления на определенные страницы. Я не уверен, что он рассмотрит ваши конкретные проблемы, но может иметь полезную информацию для отладки. http://blog.gingergriffis.com/post/59812374302/rails-app-thumbnail-on-facebook

Главный пункт моего сообщения в блоге, который может быть полезным, - это инструмент отладки facebook: http://developers.facebook.com/tools/debug.

А вот настройки, которые я использовал в моем application.html.erb файле:

<meta property=”og:title” content=”Ginger Griffis” /> 
<meta property=”og:type” content=”website” /> 
<meta property=”og:url” content=”http://www.gingergriffis.com/” /> 
<meta property=”og:image” content=”http://www.gingergriffis.com/assets/mylogolarge.jpg” /> 
<meta property=”og:description” content=”I am a RoR web dev...” /> 
+0

Спасибо kleopatra - я довольно новичок в это и оцените отзывы. Главным пунктом моего сообщения в блоге, которое может быть полезно, является инструмент отладки facebook: https://developers.facebook.com/tools/debug. И вот настройки, которые я использовал в файле application.html.erb: ' ' – Sedona

+0

Будучи новым, не проблема, надеюсь, что мое напоминание нежное достаточно :-) Кстати, вы можете отредактировать свой ответ и добавить информацию (в своем комментарии) там, это будет гораздо более читаемым. – kleopatra

Смежные вопросы