Ruby解析错误

Ruby解析错误,ruby,parsing,Ruby,Parsing,我有以下厨师食谱: def prestashop_deployDatabase (username) sql_path = '/tmp/prestashop_create_tables.sql' template sql_path do source "prestashop152.sql.erb" owner "root" group node['mysql']['root_group'] mode "0600"

我有以下厨师食谱:

def prestashop_deployDatabase (username)
    sql_path = '/tmp/prestashop_create_tables.sql'

    template sql_path do
        source "prestashop152.sql.erb"
        owner "root"
        group node['mysql']['root_group']
        mode "0600"
        variables(
            :username => #{username}
        )
        action :create
    end
end
出于某种原因;它无法理解我传递的“username”参数

附言:我是红宝石n00b

{username}
是ruby中的注释。您应该编写
“#{username}”
,或者更好,在这种情况下,只需
username
{username}
是ruby中的注释。您应该用ruby编写
“#{username}”
,或者更好,在这种情况下,只需使用ruby编写
username

  • #
    code中开始一行注释
  • {}
    字符串中开始插值-大括号中的所有内容都将被解释为ruby代码
由于您在这里的代码中使用了
#
,它注释掉了行
{username}
的其余部分,因此实际上您的代码是这样写的:

variables(
  :username =>
)
这将导致语法错误。

在ruby中:

  • #
    code中开始一行注释
  • {}
    字符串中开始插值-大括号中的所有内容都将被解释为ruby代码
由于您在这里的代码中使用了
#
,它注释掉了行
{username}
的其余部分,因此实际上您的代码是这样写的:

variables(
  :username =>
)

这会给你一个语法错误。

如果你出现奇怪的错误,则不完全等同于,
username.to\s
。如果你出现奇怪的错误,则不完全等同于,
username.to\s