添加 if in Ruby heredocs
Add if in Ruby heredocs
我正在尝试使用 javascript 显示产品详细信息。我正在使用 haml 和 RoR-4.2.1。我有以下代码
var a = new Array();
#{@productlist.map do |prdct|
<<-EOS
var t = new Object();
t.product_id = '#{prdct.product_id}';
t.name = '#{prdct.name}';
t.address = '#{prdct.address}';
a.push(t)
EOS
end.join("\n")}
我有一个模型图像,其中包含产品图像。产品可能有也可能没有图像。所以为了显示图像,我添加了以下内容
t.shop_image =
"#{if prdct.images.present?
prdct.images.first.image_url
else
''
}"
推送语句之前的语句。但它正在产生一个问题。如果查看 heredocs,我该如何添加。
方法 1:执行与 "normal" 字符串相同的操作。
"#{product.images.present? ? product.images.first.image_url : ''}"
方法1+:把上面的表达式提取到一个变量中,让你的模板包含更少的逻辑。
方法 2:不要滥用 heredocs 而是 use ERB。
我正在尝试使用 javascript 显示产品详细信息。我正在使用 haml 和 RoR-4.2.1。我有以下代码
var a = new Array();
#{@productlist.map do |prdct|
<<-EOS
var t = new Object();
t.product_id = '#{prdct.product_id}';
t.name = '#{prdct.name}';
t.address = '#{prdct.address}';
a.push(t)
EOS
end.join("\n")}
我有一个模型图像,其中包含产品图像。产品可能有也可能没有图像。所以为了显示图像,我添加了以下内容
t.shop_image =
"#{if prdct.images.present?
prdct.images.first.image_url
else
''
}"
推送语句之前的语句。但它正在产生一个问题。如果查看 heredocs,我该如何添加。
方法 1:执行与 "normal" 字符串相同的操作。
"#{product.images.present? ? product.images.first.image_url : ''}"
方法1+:把上面的表达式提取到一个变量中,让你的模板包含更少的逻辑。
方法 2:不要滥用 heredocs 而是 use ERB。