如何在 Mailer Preview 中访问 url 参数

Fel*_*ger 5 parameters ruby-on-rails actionmailer ruby-on-rails-4 ruby-on-rails-4.1

我有以下工作预览类:

class UserMailerPreview < ActionMailer::Preview
  def invite
    USerMailer.invite
  end
end
Run Code Online (Sandbox Code Playgroud)

我试图将参数传递给方法,如下所示:

localhost:3000/rails/mailers/user_mailer/invite?key1=some_value
Run Code Online (Sandbox Code Playgroud)

服务器似乎收到了它们:

Parameters: {"key1"=>"some_value", "path"=>"user_mailer/invite"}
Run Code Online (Sandbox Code Playgroud)

但是当尝试使用 hash 访问它们时params,我收到错误。

我可以在预览方法中访问这些参数吗?如果可以,如何访问?

Cra*_*ker 3

我深入研究了邮件预览系统背后的代码,发现不幸的是,没有任何请求参数被传递到预览类,因此预览无法访问。

相关的控制器操作位于 Railties 中:Rails::MailersControlller#preview。在这里,您可以看到它调用ActionMailer::Preview#call并仅传递“电子邮件”的名称(即:预览中的相应方法)。

  • 如果我的 PR https://github.com/rails/rails/pull/20646 被提交,这将是可能的,如果这对你也很重要,请“+1”。 (2认同)