Railsコントローラからヘルパーメソッドを呼び出そうとするとNoMethodErrorが発生する
2023-09-04 10:18:22
質問
私は
NoMethodError
が表示されます。これは、ヘルパーモジュールで定義されたメソッドにコントローラクラスからアクセスしようとしたときに発生します。私のRailsアプリケーションでは
helper
クラスメソッドに
:all
のようなシンボルを使用します。
class ApplicationController < ActionController::Base
helper :all
.
.
end
私の理解では、これによりすべてのコントローラクラスが自動的にapp/helpersディレクトリ内のすべてのヘルパーモジュールをインクルードし、したがってすべてのメソッドがコントローラに混在するようになるはずです。これは正しいのでしょうか?
もし私が明示的に
include
を指定すると、すべてが正しく動作します。
どのように解決するのですか?
helper :all
はすべてのヘルパー(そう、すべてのヘルパー)をビューで利用できるようにしますが、コントローラにはそれらを含めません。
ヘルパーとコントローラの間で何らかのコードを共有したい場合、ヘルパーはUIのコードで、コントローラはまあコントローラのコードなので、あまり望ましいことではありませんが、ヘルパーをコントローラに含めるか、別のモジュールを作成してそれをコントローラとヘルパーに含めるかのどちらかになります。
関連
-
[解決済み】なぜRuby on Railsは、http://localhost:3000 の代わりに http://0.0.0.0:3000 を使用するのですか?
-
[解決済み】修正方法:エラー:'<ファイル名>'にチェックアウトされたコミットがない fatal: コマンドプロンプトで "git add ." を入力するとファイルの追加に失敗する
-
[解決済み] gemのインストールができない - gemネイティブ拡張の構築に失敗 - そのようなファイルをロードできない -- mkmf (LoadError)
-
[解決済み] RailsのRootディレクトリのパス?
-
[解決済み] サーバーはRailsで既に稼働している
-
[解決済み] レイル 4 radio_button_tag default not selected
-
[解決済み] エラーが発生しました。pgsqlをrailsで動作させようとすると、Peer authentication failed for user "postgres" と表示されます。
-
[解決済み】Ruby on Railsでコンソールからコントローラ/ビューヘルパーメソッドを呼び出すにはどうすればよいですか?
-
[解決済み】RailsでOOデザイン。どこにものを置くか
-
[解決済み】Rubyモジュールをインクルードせずに、そのインスタンスメソッドを呼び出すことはできますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Rails: sudo "コマンドが認識されないのはなぜですか?
-
[解決済み】Rails。Ruby on Railsの移行でデータベースカラムの名前を変更するにはどうすればよいですか?
-
[解決済み] gemのインストールができない - gemネイティブ拡張の構築に失敗 - そのようなファイルをロードできない -- mkmf (LoadError)
-
[解決済み] ウェブパッカーがアプリケーションを見つけ出せない
-
[解決済み] heroku push rejected, failed to compile Ruby/rails app
-
[解決済み] Rubyで変数をインクリメントする [重複]。
-
[解決済み] erbでコメントを追加する最適な方法
-
[解決済み] railsアプリケーションでCookieのオーバーフロー?
-
[解決済み] 構文エラー "構文エラー、予期しない入力終了、keyword_endを期待 (SyntaxError)"
-
[解決済み] rails/rubyでgroup_byを使用する。