Правильное встраивание написания Ruby-кода - PullRequest
0 голосов
/ 09 июля 2010

Я пытаюсь написать это:

 %meta{ :name => "keywords", :content => "#{@page_city}, #{truncate_words(@page_keywords, 7) || 'Meta, Words, Are, Dope, For, SEO'}"}

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

Это работает, но единственная проблема в том, что появляется первая запятая после page_city. Так что сейчас это выглядит как ..

 <meta content=', Meta, Words, Are, Dope, For, SEO' name='keywords' />

Кто-нибудь знает, как включить это "," и во встроенные переменные?

Ответы [ 2 ]

2 голосов
/ 09 июля 2010

Обычно вы можете использовать Array для таких ситуаций:

- default_keywords = %w[ Meta Words Are Dope For SEO ]
- meta_content = [ @page_city, (truncate_words(@page_keywords, 7) || default_keywords) ]

%meta{ :name => "keywords", :content => meta_content.flatten.compact.join(',') }

Array # compact удаляет все нулевые значения, чтобы избежать вставки дополнительных запятых.

0 голосов
/ 09 июля 2010

Вы всегда могли бы просто сделать это:

#{@page_city + ', ' if @page_city}

Лично я, вероятно, пошел бы на совсем другой подход к этому:

@arg1 = 'foo'
@arg2 = 'bar'
@arg3 = 'baz'
[@arg1, @arg2, @arg3].join(", ")    # => "foo, bar, baz"
...