0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

appディレクトリ

Posted at

appディレクトリの内容を知る

RailsはMVCアーキテクチャを採用しているため、アプリケーションコードは基本的にModel、View、Controllerの三階層に分かれます。この基本となる3階層がそれぞれmodels,views,controllersの3つのディレクトリです。これらに加えてViewで利用するヘルパースクリプトを格納するhelperを合わせた4つのディレクトリがRubyで記述するサーバサイドアプリケーションとしてよく利用することになるディレクトリです。
 また、フロントエンド関連のソースコードはjavaScriptのソースコードをまとめるJavascriptCSSなどをまとめるassetsディレクトリがあります。これは詳細は「4章 フロントエンドの開発手法」で詳しく解説します。
 それ以外のchannelsやjobs、mailerなどはRailsが用意している特定の機能向けコンポーネントに関するソースコードを格納する場所です。これらについては「5章 Raiils標準の機能を活用して素早く機能実装する」で解説しますが、それぞれのコンポーネントを使わないシンプルなrailsアプリケーションではこれらのディクトリ内を編集することは少ないでしょう。
p30~31

以下に対してどんなコードを書くのか知りたい

  • `Viewで利用するヘルパースクリプトを格納するhelper
  • フロントエンド関連のソースコードはjavaScriptのソースコードをまとめるJavascript
  • channelsやjobs、mailerなどはRailsが用意している特定の機能向けコンポーネントに関するソースコードを格納する場所

独自のヘルパーメソッドの定義

Rails組み込みのヘルパーメソッドでは用途に合わない場合は自分で実装する必要が出てくるでしょう。HTMLタグの付与や生計などビューに特有の加工をする場合は、モデルクラスに変換処理がを書くより、ヘルパーメソッドを利用するやり方が一般的にです。ここでは独自のヘルパーメソッドの定義方法について説明する。
ヘルパーメソッドを定義するためのモジュールは、「app/helpers」というディレクトリの配下に定義します。アプリケーション全体で使うものであれば「app/helpers/application_helper.rb」に実装し、コントローラ毎に使うようなものであれば「app/helpers/books_helper.rb」のようにコントローラに対応するhelper用のファイルを用意します。
p106

helperオブジェクトでヘルパーを呼び出す

odule ApplicationHelper
  def to_hankaku(str)
    str.tr("A-Za-z", "A-Za-z")
  end
end
*******> helper.to_hankaku("RU")
=> "RU"

helper出ないといけない

 helpe.to_hankaku("RU")
*******:2:in `<main>': undefined local variable or method `helpe' for main:Object (NameError)
Did you mean?  helper

/mailersはAction Mailer

Action Mailerを使うと、アプリケーションからメールを送信できるようになります。

感想

他のディレクトリは情報技術に関する基礎が必要だと考える。
説明を見たが理解できなかった。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?