Разница между t (: str) и t: str в ROR - PullRequest
0 голосов
/ 02 сентября 2010

Я новичок в ROR .. У меня есть сомнения в командах интернационализации.

в некоторых случаях мы использовали <%=t :str_use%>

и в некоторых случаях мы использовали <%= t(:str_use) %>

В чем разница между этими двумя

когда я должен использовать первый и когда использовать второй ..

Просьба дать некоторые идеи по этому поводу.

У меня есть файл представления, в котором у меня много строк, и я хочу их интернационализировать.

в некоторых случаях у меня как <td>Use</td>

и в некоторых случаях

<% if use %> Use <br />
<% else %>

Ответы [ 3 ]

3 голосов
/ 02 сентября 2010

Это синтаксис ruby, а не ror;)

Оба одинаковы.Руби может угадать скобки, даже если их там нет.
Так что это полностью зависит от вас.

1 голос
/ 10 сентября 2010

Нет разницы между t :str и t(:str) - они оба вызывают метод t с символом :str в качестве аргумента.В Ruby круглые скобки вокруг аргументов являются необязательными.

Но оба они отличаются от t: str, который является сокращением Ruby 1.9 для хеша {:t => str}.

0 голосов
/ 04 июля 2012

Когда использовать t (: str)?Если вы хотите связать дальнейшие методы.

Попробуйте это в Rails:

t 'some.translation'.capitalize
t('some.translation').capitalize

Первый подход вернет:

Translation

.. как во второй половинеидентификатор после периода, вместо перевода всего текста.Из того, что я могу сказать, это потому, что вы передаете аргумент 'some.translation'.capitalize, а не вызываете capitalize при возврате, как во втором примере.

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