使自定义助手可用于 Rails 3.1 中的 Mailer 和 View

发布于 2024-11-25 10:56:33 字数 339 浏览 1 评论 0原文

这是在 Rails 3.1 中为 Mailer 和视图提供助手的最佳方式吗?

class EventMailer < ActionMailer::Base
  include MailerHelper
  helper :mailer

helper :mailer

自己尝试过,但这不允许我使用 EventMailer 类中的帮助器。

我尝试过

add_template_helper(MailerHelper)

但遇到了同样的问题。

is this the best way to make a helper available to both Mailer and view in Rails 3.1?

class EventMailer < ActionMailer::Base
  include MailerHelper
  helper :mailer

I tried

helper :mailer

on its own, but that didn't allow me to use the helpers in the EventMailer class.

I tried

add_template_helper(MailerHelper)

but had the same problem.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

路还长,别太狂 2024-12-02 10:56:33

Rails 助手应该是视图助手。

您会注意到以下代码:

class MyController < ApplicationController
    helper :my
end

将使 MyHelper 中的方法可用于视图,但可用于您的控制器操作。 include MyHelper 将使帮助器方法在控制器中可用。

总结:

helper :my 并且您可以在视图中使用帮助器

include MyHelper 并且您可以在控制器中使用帮助器

我解释了更多,但您已经回答了您的问题问题:

class EventMailer < ActionMailer::Base
    include MailerHelper
    helper :mailer

    # rest of the code goes here ...
end

将执行您想要的操作,并允许您在邮件程序和视图中使用助手。

希望这有帮助。

The rails helpers are supposed to be view helpers.

You will notice that the following code :

class MyController < ApplicationController
    helper :my
end

will make the methods in MyHelper available to the views, but not to your controller actions. include MyHelper will make the helper methods available in the controller.

Summarized :

helper :my and you can use the helpers in your views

include MyHelper and you can use the helpers in your controller

I explained a bit more, but you already answered your question :

class EventMailer < ActionMailer::Base
    include MailerHelper
    helper :mailer

    # rest of the code goes here ...
end

will do what you want and allow you to use your helper in both your mailer and your views.

Hope this helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文