2

ここで何が間違っているのか理解できません。

フラッシュで#{@user.name}を機能させることができないようです[:notice]

他のすべては問題なく機能します。新しいユーザーを追加できますが、「ユーザーJohn Doeが正常に作成されました」と言う代わりに新しいユーザーを追加すると、「ユーザー#{@user.name}が正常に作成されました」と表示されます。</p>

私はデポアプリのこの時点にいます:depot_p / app / controllers/users_controller.rbが動作します。

4

3 に答える 3

8

これは、二重引用符で囲まれた文字列専用の文字列補間と関係があり、フラッシュとは関係ありません。

シーケンスを使用して、任意の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

詳細については、ProgrammingRubyは無料の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 に答える