プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
Ruby on Rails3、コントローラの作成(1)
Railsさんでコントローラを新しく作るときは
コンソール上で

rails generate controller [コントローラ名(※1)]
 ※1:頭を小文字にして「Controller」を取る。
    作成するコントローラが「HogesController」の場合「hoges」と指定する。

と打つと必要なファイルが出来るらしい。
試しに

rails generate controller hoges

とか打ったら

create  app/controllers/hoges_controller.rb
invoke  erb
create    app/views/hoges
invoke  test_unit
create    test/functional/hoges_controller_test.rb
invoke  helper
   app/helpers/hoges_helper.rb
   test_unit
create      test/unit/helpers/hoges_helper_test.rb
invoke  assets
invoke    coffee
create      app/assets/javascripts/hoges.js.coffee
invoke    scss
create      app/assets/stylesheets/hoges.css.scss


ってな結果が表示されました。
どうやら

  app/controllers/hoges_controller.rb
  app/views/hoges
  test/functional/hoges_controller_test.rb
  app/helpers/hoges_helper.rb
  test/unit/helpers/hoges_helper_test.rb
  app/assets/javascripts/hoges.js.coffee
  app/assets/stylesheets/hoges.css.scss

の7つのファイルが自動作成されたようです。
おぉ、思ったよりいっぱい作られたな。

もちろん中身は空っぽなので、具体的な処理は
個別に実装する必要がありますけどね。
※コントローラ作成時にアクションメソッドも指定したい場合はこちらをご覧ください。

ちなみにコントローラ作ってビュー作ってブラウザからアクセスした際に

  Routing Error
  No route matches [GET] "/hoges/index"
  Try running rake routes for more information on available routes. 

とか怒られた場合は

  config/routes.rb

の中身を確認してみてください。
恐らくルーティングの設定がされていないので。

  resources :hoges

等の記述を追加するか
最後の行の

  # match ':controller(/:action(/:id))(.:format)'

のコメントを外せば動くはずです。

なるほどね。
scaffoldだとCRUDのひな形を作ってくれるのに対し、
こちらは本当に入れ物だけ作ってくれるのですね。
個人的には余計なことされるよりはこっちの方が好きかな。
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:Ruby on Rails  thema:パソコンな日々 - genre:コンピュータ  Posted by ササキマコト 

  関連記事