【问题标题】:eRB and multiple statements syntax?eRB 和多语句语法?
【发布时间】:2016-03-09 04:14:53
【问题描述】:

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

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

拆分成多行似乎是错误的,因为文本将全部出现在屏幕上的同一行,但有没有更好的语法来避免两个连续的 &lt;%= %&gt; 块?

【问题讨论】:

  • 唉!共享有效的 eRB 会有所帮助! &lt;p&gt;&lt;%= t('session.new_user') %&gt;&lt;%= link_to t('session.signup_now'), signup_path %&gt;&lt;/p&gt;
  • 您可以将链接作为参数传递:stackoverflow.com/a/2544107/477037

标签: html ruby-on-rails ruby erb


【解决方案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

现在它是真正可读的!

【讨论】:

    【解决方案2】:

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

    <% ... -%>
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多