2016-01-29 6 views
1
<%= if @meta_leeds == "leeds" %> 
    <meta property="og:image" content="http://www.some.link/to/image"/> 
<% end %> 

Я хочу встроить конкретный метатег только на одной странице моего приложения для рельсов. Я определил:если инструкция синтаксическая ошибка при попытке вставить метатег

@meta_leeds = "leeds" 

контроллера на страницах и он будет отображать строку, если положить между h1 тегом, но он не будет выводить мета-тега на основе результатов выше, если заявление.

Что я делаю неправильно?

+1

'<%, если @meta_leeds == "Лидса" %>' - вам не нужно выводить 'if' заявление –

+0

Он по-прежнему дает синтаксис ошибка. я изменил код на: '<% @meta_leeds ==" leeds "%><% end %> ' –

+0

Какова синтаксическая ошибка? –

ответ

0
<% if @meta_leeds == "leeds" %> 
    <meta property="og:image" content="http://www.some.link/to/image"/> 
<% end %> 

Просто удалите = (и только =) из заявления.

+0

Отлично, это, похоже, сработало! Но я смущен, поскольку я думал, что «=» предназначено для назначения значения переменной, а «==» - это оператор сравнения. Почему это работает как оператор определения, а не оператор сравнения? –

+0

@ LouisJones Это не так, вы запутываете erb и Ruby. –

0

Поэтому мне удалось внедрить метатег, проверив заголовок, а не переменную, которая была в функции контроллера.

Вот окончательный рабочий код:

<% if yield(:title) == "Leeds" %> 
    <meta property="og:image" content="http://www.some.link/to/image"/> 
<% end %> 
Смежные вопросы