我正在构建一个Rails 4博客应用程序并使用Slim。
我正在尝试使用Post表中的'img_style'列动态设置部分名称。这将根据不同的枚举“图像样式”调用不同的部分。
查看
= render = 'img_style_{#@post.img_style}'
这应该产生相当于:
= render = 'img_style_1'
我希望能够渲染我的部分名为'_ img_style_1.html.slim'
现在,使用我的代码,它只是在屏幕上呈现此错误:
There is an Error: The partial name (img_style_{#@post.img_style}) is not a valid Ruby identifier; make sure your partial name starts with underscore, and is followed by any combination of letters, numbers and underscores.
答案 0 :(得分:2)
使用单引号(String
)定义的Ruby ''
不允许表达式替换。您需要使用双引号(""
),并使用正确的替换语法(#
之前{
):
"img_style_#{@post.img_style}"
ETA 相关地,也许您已经完成了这项工作,但我确保img_style
仅包含使用验证定义部分的值,例如:
validates_inclusion_of :img_style, in: [1,2,3]