1.Мое решение:
'oauth_consumer_key="#{Figaro.env.TWITTER_ACCESS_TOKEN}"'
2.Почему:
%Q()
в основном заменяет переменную двойными кавычками ""
, это буквально то же самое, как если бы вы написали "Figaro.env.TWITTER_ACCESS_TOKEN"
Фактически, чтобы отобразить содержимое переменной, вы должны использовать интерполяция вместо самого имени, используя "#{var}"
.
Вы также можете использовать %Q
напрямую с интерполяцией, используя %Q{var}
(примечание {}
вместо ()
).
Ваша проблема в другом месте: с помощью метода join () .Это избавление от двойных кавычек.В этом случае выполнение ["var", var].join('=')
и ["var", %Q{var}].join('=')
заканчивается тем же, но более сложным.
@ Решение Артема Игнатьева должно работать .Но если вам нужно быть более читабельным, вам даже не нужно присоединяться, imho, это имеет смысл только тогда, когда вы используете более двух переменных.
Например, я буду использовать что-то вроде 'oauth_consumer_key="#{var}"'
смешивая одинарные и двойные кавычки, чтобы убедиться, что это не вызывает путаницы.
Если вам do нужно использовать %Q()
и join
, вы все равно можете использовать ["oauth_consumer_key", %Q("#{Figaro.env.TWITTER_ACCESS_TOKEN})].join('=')
.
- Обратите внимание, что из-за
join
вы можете использовать интерполяцию с одинарными кавычками %q
или интерполяцию с двойными кавычками %Q
без влияния на конечные результаты:
например
['oauth_consumer_key', %q("#{var}")].join('=') == ["oauth_consumer_key", %Q("#{var}")].join('=')