【发布时间】:2015-08-22 03:12:00
【问题描述】:
以下 PHP 代码的 rubys (ERB) 等价物是什么?
<?php echo $first_variable . " " . $second_variable ?>
【问题讨论】:
标签: ruby-on-rails syntax erb
以下 PHP 代码的 rubys (ERB) 等价物是什么?
<?php echo $first_variable . " " . $second_variable ?>
【问题讨论】:
标签: ruby-on-rails syntax erb
<%= "#{first_variable} #{second_variable}" %>
请注意,变量将被转换为字符串表示形式(这可能会产生一些意外的输出,例如“Photo:0x0000000dc9f5b0”)。更多关于连接字符串的各种方法在这里:String concatenation in Ruby
【讨论】:
你可以这样做:<%= first_variable_value + " " + second_variable_value %>
但是,如果变量存储Fixnum 而不是String,则会出现以下错误TypeError: String can't be coerced into Fixnum。
因此最好的方法是<%= "#{first_variable} #{last_variable}" %>
插值将Fixnum 隐式转换为String 并解决了问题。
【讨论】:
<%= first_variable_value + " " + second_variable_value %>。按照你的方式,它只会打印first_variable_value 和second_variable_value
first_variable 是一个复杂对象(例如Rails 模型实例),这将以undefined method + for Model:0x0000000dd7ef30 结束
您不需要" 来打印变量;你可以不使用"。
<%= 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 结尾