質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails 7

Ruby on Rails 7は、2021年12月に正式リリースされました。Ruby on Railsのバージョン7であり、フロントエンド開発環境を大幅に刷新。Node.jsを用いない構成がデフォルトになっています。

Q&A

0回答

141閲覧

ヘルパーディレクトリで作ったメソッドはビューで使えるのでしょうか?

OHASI

総合スコア96

Ruby on Rails 7

Ruby on Rails 7は、2021年12月に正式リリースされました。Ruby on Railsのバージョン7であり、フロントエンド開発環境を大幅に刷新。Node.jsを用いない構成がデフォルトになっています。

0グッド

0クリップ

投稿2022/11/27 06:19

前提

railsの勉強をしています。

結論から言うと
「ヘルパーディレクトリで作ったメソッドはビューで使えるのでしょうか?」
と言う質問です。

どういうことか説明します。

railsチュートリアルという教材の中で、

Railsでは、インスタンス変数をコントローラ内で宣言するだけでビューで使えるようになる、といった点に主な利用価値があります。ただ一般的には、そのクラス内であればどこからでもアクセスできる変数として使われます

といった説明文があります。

こんな感じでヘルパーディレクトリで作ったメソッドは、コントローラで宣言されたインスタンス変数のようにビューで使えるのでしょうか?ということです。

具体的にいうと、以下のコードを見てこのような疑問が湧きました。

ruby

1// ファイルの場所 app/views/layouts/_header.html.erb 234<li><%= link_to "Settings", edit_user_path(current_user) %></li> 56

このcurrent_userを定義しているファイルの場所は「app/helpers/sessions_helper.rb」です。
つまり、ヘルパーディレクトリで作成したメソッドはビューでも使えるようになっているということですよね?

私の解釈だと、
「ヘルパーはコントローラの中で使うメソッド(機能、部品)を作る場所で、コントローラはヘルパーで作られたメソッドを使っていろんなアクションを促す場所(いろんな命令を出す場所)である。

つまり、「railsの教材よりコントローラとビューは繋がっている」と「コントローラとヘルパーは繋がっている」ということから、ビューとヘルパーは繋がっていると言える。

従って、ヘルパーで定義したメソッドはビューで使うことができる。

(ちなみに、別にヘルパーでメソッドを作らないで、コントローラで命令の流れ?などを書いてもいいが、それだとコードを読みづらいし、メンテナンスしにくい。)」

といった感じなんですけど、当ってますか?

以上よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問