2015-12-04 1 views
0

У меня есть следующее в файле html.erb, используя link_to, чтобы получить гиперссылку и t(), чтобы интернационализировать мой текст. Но это выглядит очень неуклюжее:eRB и синтаксис нескольких операторов?

<p><%= t('session.new_user') %><%= link_to(t('session.signup_now'), signup_path) %></p> 

Расщепление на несколько строк кажется неправильным, так как текст будет все отображаться на ту же строку на экране, но есть лучший синтаксис, чтобы избежать два последовательных <%= %> блоков?

+0

Ach! Совместное использование действительного eRB поможет!

<% = t ('session.new_user')%><% = link_to t ('session.signup_now'), signup_path%>

' – Papadeltasierra

+0

Вы можете передать ссылку в качестве аргумента: http: // stackoverflow .com/а/2544107/477037 – Stefan

ответ

1

я бы, вероятно, пойти на обрыв линии:

<p> 
    <%= t('session.new_user') %> 
    <%= link_to t('session.signup_now'), signup_path %> 
</p> 

или вы можете установить переменные до фактического кода

<% new_user_text = t('session.new_user') %> 
<% link = link_to t('session.signup_now'), signup_path %> 
<p><%= new_user_text %><%= link %></p> 

или вы можете установить переменные экземпляра в контроллере. Мне не понравилось бы это для просмотра подобных вещей.

Extra: если вы любите опрятный код, который вы можете, как Haml

%p 
    = t('session.new_user') 
    = link_to t('session.signup_now'), signup_path 

теперь actualle читаемым!

0

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

<% ... -%> 

Обратите внимание, что эта функция имеет специфику Rails.