【问题标题】:Rails - redirect_to not sending params as intendedRails - redirect_to 未按预期发送参数
【发布时间】:2017-01-27 15:33:57
【问题描述】:

我有以下代码行:

redirect_to dynamic_page_path(page), corporate_contact_form: 'bla'

当我触发此重定向并检查我的日志时,它在没有 Corporate_contact_form 参数的情况下发送,只是页面。

我检查了文档并相信我已经输入了所有需要的信息,但显然没有。任何帮助表示赞赏。

【问题讨论】:

  • 如果您重定向到 post 方法而不是 get,则该重定向可能会发送参数。

标签: ruby-on-rails ruby parameters


【解决方案1】:

嗯,在我看来,您混合了语法,可能是:

redirect_to controller: 'dynamic_page', action: 'edit', corporate_contact_form: 'bla'

redirect_to dynamic_page_path(page, corporate_contact_form: 'bla')

这个link应该对你有帮助。

【讨论】:

  • 我已经尝试了 redirect_to dynamic_page_path(page,corporate_contact_form: 'bla') 它仍然没有传入corporate_contact_form参数,只是dynamic_page_id
【解决方案2】:

把你的参数放在the flash:

redirect_to dynamic_page_path(page), flash: { corporate_contact_form: 'bla' }

在闪存之外只能使用几个键::alert:notice。这就是为什么您可能会在文档中找到类似以下内容的原因:

redirect_to dynamic_page_path(page), notice: 'Hello'

不过,并非所有参数都可以在没有 Flash 的情况下放置。

【讨论】:

  • 您可以使用add_flash_types :info, :error, :warning 等添加自定义闪存类型,并像使用notice 一样使用它们
  • 但这不是对所发布问题的回答,它要求params 不起作用。
  • 是的,我可能通过查看结束) 的位置并早期假设它与闪存有关而弄错了问题。不过不知道add_flash_types。甜蜜。
【解决方案3】:

我认为你只是有语法问题。您需要将要发送的参数作为路径助手的 args 的一部分包含在内。应该是:

redirect_to dynamic_page_path(page, corporate_contact_form: 'bla')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-16
    • 1970-01-01
    • 2010-12-10
    • 1970-01-01
    • 2015-02-06
    • 2010-11-28
    • 1970-01-01
    • 2014-12-30
    相关资源
    最近更新 更多