14

私は試した:

class MyMailer
  def routes
    Rails.application.routes.url_helpers
  end

  def my_mail
    @my_route = routes.my_helper
    ... code omitted 
  end

また、メーラー内:

include Rails.application.routes.url_helpers

def my_mail
  @my_route = my_helper

また、メーラーテンプレートでの簡単な方法:

= link_to 'asd', my_helper

しかし、コンソールを起動しようとすると、次のようになります。

undefined method `my_helper' for #<Module:0x007f9252e39b80> (NoMethodError)

アップデート

私は_urlヘルパーのフォームを使用しています。my_helper_url

4

8 に答える 8

2

同じ問題に遭遇しましたが、懸念があるため、直接使用してもコードで URL ヘルパーを使用できませんでした Rails.application.routes.url_helpers.administrator_beverages_url。このエラーが発生しました。

undefined method `administrator_beverages_url' for #<Module:0x00000002167158> (NoMethodError)

このエラーのためにレールコンソールを使用することさえできません。これを解決する唯一の方法は、懸念事項でこのコードを使用することでした。

module SimpleBackend
    extend ActiveSupport::Concern
    Rails.application.reload_routes! #this did the trick
.....

問題は、初期化の時点で Rails.application.routes.url_helpers が空だったことです。これを使用した場合のパフォーマンスへの影響はわかりませんが、私の場合、これは小さなアプリケーションであり、弾丸を取ることができます.

于 2013-11-22T15:56:05.630 に答える
0

メーラーで利用できないように見える新しく追加されたルートで作業しているときに、この問題に遭遇しました。私の問題は、すべてのワーカーを再起動して、新しく追加されたルートを取得する必要があることでした。誰かが同じ問題に遭遇した場合に備えて、この脚注をここに残しておいてください。これが起こっていることを知らなければ、解決するのは難しいかもしれません.

于 2016-01-12T15:45:51.070 に答える
0

Rails ルート ヘルパーはRails.application.routes.url_helpers. include Rails.application.routes.url_helpers私はこれをテストしていませんが、クラスのトップに置くことができるはずです

于 2013-07-21T22:15:35.857 に答える
-1

Rails.application.routes.url_helpers を正しい方法で使用する方法を説明しているこのブログをご覧ください。

http://hawkins.io/2012/03/generating_urls_whenever_and_wherever_you_want/

于 2014-11-24T11:09:04.720 に答える
-2

を使用する必要がありますmy_helper_url

于 2013-07-21T21:30:30.853 に答える