转义转义字符串中的字符串?

时间:2014-11-15 20:10:41

标签: ruby-on-rails ruby

所以我正在写一个发电机。

我希望生成器能够创建' model'名。如

rails g my_custom_generator foo

rails g my_custom_generator bar

基于rails,我可以使用#{class_name}为所选名称创建模型。

{class_name}将变为foo或bar,具体取决于您的选择。

还在我身边吗?大。我的问题如下:

我想生成一个编辑表单,我想在已经转义的字符串中填写模型名称。类似的东西:

f.input :name, value="#{@model.name}"

我上面的代码看起来就像那样。我想现在将其转换为生成器,如

f.input :name, value=#"{@#{class_name}.name}"

但这并不奏效。有谁知道如何逃脱已经逃脱的字符串...?这里有什么方法。

2 个答案:

答案 0 :(得分:0)

请记住,您可以使用单引号避免转义:

"#{@model.name}"
# => "Test"
'#{@model.name}'
# => "\#{@model.name}"

因此,如果您打算推迟评估一轮,您应该像这样逃避或使其成为更文字的版本:

"\#{@#{class_name}.name}"

可以评估两次,但我不确定它是否会在发电机系统中按照计划完全正常工作。你必须测试它。

答案 1 :(得分:0)

各种来源(thisthis)表示要生成的文件由ERB处理,因此在<%=和{{1}之外的这些文件中使用Ruby的字符串插值没用。

像这样拼接:

%>