Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用slim和Rails 4&;的动态部分名称;获取部分名称是无效的Ruby标识符错误_Ruby On Rails_Dynamic_Partials_Slim Lang - Fatal编程技术网

Ruby on rails 使用slim和Rails 4&;的动态部分名称;获取部分名称是无效的Ruby标识符错误

Ruby on rails 使用slim和Rails 4&;的动态部分名称;获取部分名称是无效的Ruby标识符错误,ruby-on-rails,dynamic,partials,slim-lang,Ruby On Rails,Dynamic,Partials,Slim Lang,我正在构建一个Rails 4博客应用程序并使用Slim。 我正在尝试使用我的Post表中的'img_style'列动态设置部分名称。这将根据不同的枚举“图像样式”调用不同的部分。 查看 = render = 'img_style_{#@post.img_style}' 这应产生相当于: = render = 'img_style_1' 我希望它能够呈现我的名为'\u img\u style\u 1.html.slim' 现在,使用我的代码,它只是在屏幕上呈现这个错误: There is an

我正在构建一个Rails 4博客应用程序并使用Slim。 我正在尝试使用我的Post表中的'img_style'列动态设置部分名称。这将根据不同的枚举“图像样式”调用不同的部分。

查看

= render = 'img_style_{#@post.img_style}'
这应产生相当于:

= render = 'img_style_1'
我希望它能够呈现我的名为'\u img\u style\u 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.

使用单引号(
'
)定义的Ruby
字符串不允许表达式替换。您需要改为使用双引号(
),并在
{
之前使用正确的替换语法(
#
):

ETA相关,也许您已经这样做了,但我会确保
img_style
仅包括使用验证定义部分的值,例如:

validates_inclusion_of :img_style, in: [1,2,3]
validates_inclusion_of :img_style, in: [1,2,3]