Blank?=Falseスマートフォン用の表示で見るBlank?=False「呉下の阿蒙にあらず」をモットーにしたITエンジニアの日々Blank?=Falseこの広告は、90日以上更新していないブログに表示しています。今回は、コントローラとアクションについて学習してきます。見るコントローラとは?アクションとは?アクションに対応するVIEWアクション以外は全部プライベート!アクション例コントローラとモデルの命名規則コントローラの命名規則モデルの命名規則コントローラが受け取るパラメータリダイレクトの実装フラッシュの実装コントローラとは?Railsのコントローラは、モデルからデータを受け取って、ビューをレンダリングする、というのが基本的な役割で、つまりモデルとビューの中継ぎ的な機能。前々回紹介したMVCモデルを見ても、モデルとビューはコントローラを介して繋がっている。違い、はっきりした動きが決まっていないのもコントローラの特徴のような気がする。コントローラ何でも詰め込む、なんて実装になってしまうという話もよく聞く。コントローラクラスは、ApplicationControllerというクラスを継承して作成する。ApplicationControllerendアクションとは?コントローラクラスのパブリックメソッドをアクションと言い、Webページの1つのページ、機能を実現するもので、例えばshowというアクションはデータを表示する機能をもったページ、という感じ。アクションが行うことは、データを表示するものであれば、モデルからデータを取得し、対応するビューに渡す、という役割となる。データを表示しないアクション(aboutページなど)は、特に機能がなく、メソッドを宣言するだけということもある。アクションに対応するVIEW1つのアクションに対し、1つ(複数組み合わせる場合もあり)のビューとなるerbテンプレートが必要となる。erbテンプレートとアクションは、Railsの命名規則によってリンクされるため、必ずアクション名とテンプレートファイル名をあわせる必要がある。アクション以外は全部プライベート!パブリックメソッド=アクションとなるので、アクション以外のメソッド(前処理、後処理等)はすべてPrivateなメソッドにする必要がある。意図しないコードが実行される可能性があると書かれている。foundになりますよね。アクション例よく見るアクションメソッドは、以下のようなものがある。データを新規作成するアクションコントローラとモデルの命名規則Railsは設定より規約を設計哲学としているため、様々なものにルールが設けられており、そのルールに従う(レールに乗る)ことで高い生産性を持っている。この命名規則はそのルールの1つで、以下の様なルールとなっている。Memberというモデルを例としている。先頭はRubyのルール通り、英大文字。単数形モデルは単数形、複数のモデルを持つコントローラ、テーブルは複数形という感覚で覚えるといいのかな。コントローラが受け取るパラメータコントローラクラスは、params[key]というメソッドでコントローラに渡されたパラメータを取得することができる。このパラメータは、HashクラスではなくActionController::Parametersというクラスのオブジェクトで、シンボルで文字列でも値を取り出せるようになっている。http://example.com/user/show?id=11の部分を取得できる。キー値はroutes.rbで指定したものになる。routesでルートの一覧を表示した時に表示される:idなどがキー値)コレをどう使うかというと、例えばshowアクションでparamsから取得したidを使って、ユーザーのデータをモデルから取得してビューに渡す・・・という処理が作れる。endendまた、params[:controller]でコントローラ名、params[:action]でアクション名も取得することができる。endendリダイレクトの実装リダイレクトとは、前回紹介したとおりURLをレスポンスとして渡して、そのURLに移動させるというもの。実装はそのまんまredirect_toというメソッドをコールする。以下の例では、fooというアクションが呼ばれるとbarというアクションに移動させるというもの。foo_path等がある。詳細はリファレンスをガリガリ読みましょう。Railsドキュメントフラッシュの実装フラッシュとは、アクションとアクションの間で情報を受け渡す機能で、この機能を使って何らかのアクションを行った後リダイレクトを行い、アクションの結果を表示する、ということができる。ログインページでログインに成功した後、indexページにリダイレクトし、"ログインに成功しました"というメッセージを表示する、という機能が実現できる。以下の例は、fooアクションがbarアクションにリダイレクトし、barアクションがflashメッセージを表示する、もの。flash[:notice]endこのフラッシュは1度読み込んだ後そのデータがnilになる、という性質が有り、一度しか読み込めないものとなっている。そのため、一度フラッシュメッセージが表示された後にページの再読み込みを行うと、フラッシュメッセージは表示されなくなる。上記の例では、barを再読み込みした場合、何もメッセージが表示されなくなる。flash.alert="メッセージ"という形での入出力が可能となっている。リダイレクトでフラッシュがよく使われるため、redirect_toのオプションとしてフラッシュを設定することも可能となっている。(ただし、自分の環境だと何故かできない。コントローラとアクションTweet広告を非表示にする関連記事2016-11-22関数、メソッド、プロシージャ。それぞれの違いは?どうもこんばんわ。プログラミングだと関数を作って・・・とか...2016-07-23Qiitaに投稿した記事の検証Qiitaにこんな記事を投稿してみました。それで頂い...2016-07-14Railsのリソースとルーティングについて今回はRailsの基礎の1つ、リソースについて書いていきます。»Profile某製造業の社内Sler。今のお仕事のメインはAccessとVBA。元パッケージソフト開発者。VBA、そしてRDBやNoSQLを組み合わせたアプリケーション開発を得意としています。福岡県、もしくは熊本県へIターン転職に向けて、DB/NoSQLの業務に関われる会社を探しています。レベル1取得しましたリファクタリングの帽子をかぶるということ勉強は大変だが役に立つCUIなCentOS7にcinnamonを導入するLinuxのコマンドはMacOSXでそのまま動くとは限らない月別アーカイブTwitterGooglePocketはてなブログをはじめよう!stonebeach-dakarさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。