这有效:
redirect_to admins_path, email: @user.email, notice: 'Success'
但这并没有引起注意:
redirect_to action: 'show', email: @user.email, notice: 'Success'
为什么设置操作会禁止通知?
Rails 4.1.6
答案 0 :(得分:2)
我不知道原因,但是如果你看一下here的例子,你会发现你必须写它(我认为)
redirect_to ({action: 'show', email: @user.email}, notice: 'Success')
如果我不得不猜测,admins_path会创建所需的哈希值,而当你手动执行时,你必须创建哈希值。
答案 1 :(得分:1)
redirect_to
为其第一个参数提供字符串或哈希值。在第一种情况下,包含电子邮件和通知的哈希作为第二个参数发送,但在第二种情况下,哈希被任意划分为两个哈希,以满足方法的参数列表:
redirect_to admins_path, email: @user.email, notice: 'Success'
相当于
redirect_to admins_path, {email: @user.email, notice: 'Success'}
和
redirect_to action: 'show', email: @user.email, notice: 'Success'
相当于
redirect_to {action: 'show'}, {email: @user.email, notice: 'Success'}
当你想要的是什么
redirect_to {action: 'show', email: @user.email}, notice: 'Success'