2

我无法弄清楚我在这里做错了什么。

我似乎无法让#{@user.name} 在我的闪存中工作[:notice]

其他一切正常我可以添加新用户,但是当我添加新用户而不是说“用户 John Doe 已成功创建”时,它说“用户 #{@user.name} 已成功创建。”</p>

我现在在 depot 应用程序中:depot_p/app/controllers/users_controller.rb 工作。

4

3 回答 3

8

这与仅用于双引号字符串的字符串插值有关,与闪存无关。

您可以使用 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 在线书籍。

于 2010-04-24T21:19:07.600 回答
2

好的,我想通了。

Flash 通知必须用双引号,而不是单引号。我有:

flash[:notice] = '用户#{@user.name} 已成功创建。'

什么时候应该是 flash[:notice] = "用户#{@user.name} 已成功创建。"

对于一个菜鸟来说,这是一个棘手的细节。仅供其他人参考。

于 2010-04-24T21:05:28.870 回答
0

同意 JRL。如果要在任何字符串中使用 #{foo} 语法,则需要使用双引号。

于 2010-04-24T21:31:28.707 回答