2012-11-13 135 views
0

我有廚師以下幾招:紅寶石解析錯誤

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 

出於某種原因;它無法理解我傳遞的'用戶名'參數。 PS:我是Ruby n00b。

回答

3

#{username}是對ruby的評論。在這種情況下,你應該寫"#{username}",或更好,只是username

+0

不完全等價,'username.to_s'在萬一出現奇怪錯誤的情況下。 – Reactormonk

2

在紅寶石:

  • #代碼開始單行註釋
  • #{}開始插值 - 在大括號的一切將被解釋爲Ruby代碼。

由於您使用在此代碼#,它註釋掉線{username}的休息,所以實際上你的代碼這樣說:

variables(
    :username => 
) 

,這將給你一個語法錯誤。