2010-09-02 4 views
0

Я новичок в ROR .. У меня есть сомнения в командах интернационализации.Разница между t (: str) и t: str в ROR

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

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

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

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

Pls дает некоторые идеи относительно этого.

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

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

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

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

Вы имеете в виду разницу между 't (: str)' и 't: str' (не' t: str'), правильно? – Mischa

+0

ya .. где использовать t (: str) и где использовать <%=t :str%> – useranon

+0

Стоит изменить вопрос, чтобы это отразить. – Shadwell

ответ

3

Это синтаксис рубина, специально не ROR;)

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

1

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

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

0

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

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

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

Первый подход возвратит:

Translation 

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

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