eRB和多语句语法?

时间:2015-12-04 09:23:21

标签: html ruby-on-rails ruby erb

我在 html.erb 文件中有以下内容,使用link_to获取超链接,t()将文本国际化。但它看起来很笨重:

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

分割到多行似乎有误,因为文本将全部显示在屏幕上的同一行,但是有更好的语法可以避免连续两个<%= %>块吗?

2 个答案:

答案 0 :(得分: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>

或者您可以在控制器中设置实例变量。我不喜欢这样的观点。

额外:如果你喜欢整洁的代码,你可能会喜欢haml

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

现在它实际上是可读的!

答案 1 :(得分:0)

您可以在结束标记之前添加连字符,以防止将换行符附加到输出。

<% ... -%>

请注意,此功能是特定于Rails的。