【问题标题】:Chaining in rails (ERB) files在 Rails (ERB) 文件中链接
【发布时间】:2015-08-22 03:12:00
【问题描述】:

以下 PHP 代码的 ruby​​s (ERB) 等价物是什么?

<?php echo $first_variable . " " . $second_variable ?>

【问题讨论】:

    标签: ruby-on-rails syntax erb


    【解决方案1】:
    <%= "#{first_variable} #{second_variable}" %>
    

    请注意,变量将被转换为字符串表示形式(这可能会产生一些意外的输出,例如“Photo:0x0000000dc9f5b0”)。更多关于连接字符串的各种方法在这里:String concatenation in Ruby

    【讨论】:

      【解决方案2】:

      你可以这样做:
      &lt;%= first_variable_value + " " + second_variable_value %&gt;

      但是,如果变量存储Fixnum 而不是String,则会出现以下错误
      TypeError: String can't be coerced into Fixnum

      因此最好的方法是
      &lt;%= "#{first_variable} #{last_variable}" %&gt;

      插值将Fixnum 隐式转换为String 并解决了问题。

      【讨论】:

      • 这正是我想要的!谢谢你:)
      • 我想你的意思是&lt;%= first_variable_value + " " + second_variable_value %&gt;。按照你的方式,它只会打印first_variable_valuesecond_variable_value
      • 如果first_variable 是一个复杂对象(例如Rails 模型实例),这将以undefined method + for Model:0x0000000dd7ef30 结束
      【解决方案3】:

      您不需要" 来打印变量;你可以不使用"

      <%= first_variable %>
      

      这相当于下面的 PHP 代码:

      <?php echo $first_variable ?>
      

      所以为了做你在问题中提出的问题,下面的代码是合适的:

      <%= first_variable + " " + last_variable %>
      

      您不需要用" 包围您的变量。而+ 运算符在这里完成了连接工作。

      如果您不确定变量实际上是字符串对象,您可以使用以下任一技术:

      <%= first_variable.to_s + " " + last_variable.to_s %>
      <%= "#{first_variable} #{last_variable}" %>
      

      【讨论】:

      • 不是真的。如果first_variable 是一个复杂对象(例如Rails 模型实例),这将以undefined method + for Model:0x0000000dd7ef30 结尾
      • 我假设它们是字符串。让我编辑答案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多