我无法弄清楚我在这里做错了什么。
我似乎无法让#{@user.name} 在我的闪存中工作[:notice]
其他一切正常我可以添加新用户,但是当我添加新用户而不是说“用户 John Doe 已成功创建”时,它说“用户 #{@user.name} 已成功创建。”</p>
我现在在 depot 应用程序中:depot_p/app/controllers/users_controller.rb 工作。
我无法弄清楚我在这里做错了什么。
我似乎无法让#{@user.name} 在我的闪存中工作[:notice]
其他一切正常我可以添加新用户,但是当我添加新用户而不是说“用户 John Doe 已成功创建”时,它说“用户 #{@user.name} 已成功创建。”</p>
我现在在 depot 应用程序中:depot_p/app/controllers/users_controller.rb 工作。
这与仅用于双引号字符串的字符串插值有关,与闪存无关。
您可以使用 sequence 将任何 Ruby 表达式的值替换为双引号字符串#{ expr }
。如果表达式只是一个全局变量、类变量或实例变量,则可以省略大括号。
"Seconds/day: #{24*60*60}" » Seconds/day: 86400
"#{'Ho! '*3}Merry Christmas" » Ho! Ho! Ho! Merry Christmas
"This is line #$." » This is line 3
欲了解更多信息,Programming Ruby是一本免费的 Ruby 在线书籍。
好的,我想通了。
Flash 通知必须用双引号,而不是单引号。我有:
flash[:notice] = '用户#{@user.name} 已成功创建。'
什么时候应该是 flash[:notice] = "用户#{@user.name} 已成功创建。"
对于一个菜鸟来说,这是一个棘手的细节。仅供其他人参考。
同意 JRL。如果要在任何字符串中使用 #{foo} 语法,则需要使用双引号。