Ruby on Railsでアプリケーションを作成する方法

このQ&Aのポイント
  • Ruby on Railsを使用してアプリケーションを作成する手順について説明します。
  • データベースの作成やモデル、コントローラの作成方法について詳しく解説します。
  • しかし、いくつかの手順でエラーが表示される場合がありますので、エラーの解決方法もご紹介します。
回答を見る
  • ベストアンサー

Ruby on Rails について

Ruby on Railsでアプリケーションを作ります。 バージョンは:InstantRails-2.0-win 1、データベース表の作成: データベース名:myapp   テーブル名:peoples データベースを作成したら、MySQLを再起動します。 2、新規アプリケーションの作成: アプリケーション名:myapp Instant RailsウィンドウのIボタン⇒Rails Applications⇒Manage Rails Applicationsをクリックします。 Rails ApplicationsダイアログボックスのCreate New Rails App・・をクリックします。 コマンドプロンプト画面が表示されます。 rails myapp を入力します。 コマンドプロンプトのプロンプトが入力状態になって、コマンドプロンプトを閉じます。 Rails ApplicationsダイアログボックスのRefresh Listボタンをクリックしたら、myappアプリケーション名が追加されます。 3、アプリケーション・モデルの作成: InstantRails-2.0-winフォルダ ⇒ rails_apps ⇒ myapp ⇒ config ⇒ datebase.yml ファイルを開きます。 ↓に書き換えます。 development: adapter: mysql database: myapp timeout: 5000 username: root host: localhost   Instant RailsウィンドウのIボタン ⇒ Rails Applications ⇒ Open Ruby Console Windowをクリックします。 コマンドプロンプトが開きます。 cd myapp ruby script/generate model people を入力します。 4、コントローラの作成: コマンドプロンプトを開きます。 cd myapp ruby script/generate controller people を入力します。 コマンドプロンプトを閉じます。 InstantRails-2.0-winフォルダ ⇒ rails_apps ⇒ myapp ⇒ app ⇒ controllers ⇒ people_controller.rb ファイルを開きます。 class PeopleController<Application Controller scaffold :people ←←追加した行です。 end 5、新しいアプリケーションを起動 Rails ApplicationsダイアログボックスのRails Applications 欄の myappの所をチェックし、Start with Mongrelボタンをクリックします。 コマンドプロンプト画面が起動し、ポート番号が表示されます。 Webブラウザを起動し、アドレス欄に 一つは: 「http://localhost:people/list」を入力し、Enterキーを押します。 ↓Errorメッセージが表示されました。 NoMethodError in PeopleController#list undefined method `scaffold' for PeopleController:Class RAILS_ROOT: C:/taiyo/INSTAN~1.0-W/rails_apps/myapp   一つは: http://localhost:3000/people Enterキーを押します。 ↓Errorメッセージが表示されました。 NoMethodError in PeopleController#index undefined method `scaffold' for PeopleController:Class RAILS_ROOT: C:/taiyo/INSTAN~1.0-W/rails_apps/myapp どこの手順が違ってるのが解らなくて、 Errorの解決方法ですごく困ってます。 どうかご指導をお願いいたします。 もう一つはErrorメッセージの3行目は C:/taiyo/INSTAN~1.0-W/rails_apps/myappですけど、 InstantRails-2.0-winフォルダのはずですけど、 INSTAN~1.0-Wフォルダになった原因がよくわからないです。 すごく困ってます。 ご指導お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • noranuko
  • ベストアンサー率46% (620/1332)
回答No.1

エラーとしてはPeopleController(people_controller.rb)にscaffoldというメソッドはないよ、というものです。 rails1.0系ではこの手順でOKなはずですが、rails2.0のscaffoldは扱いが変わっているようです。 おおざっぱな手順としては、以下の通り。 1.railsコマンドでひな形を作成 ※rails2.0ではデフォルトのDBがSQLite3なので、mysqlで使う場合は"-d mysql"オプションが必要かもです。 2.database.ymlを修正 3.おもむろにscaffold実行 ruby script/generate scaffold pepole name:string age:integer 4.dbにデータベースを作る 5.mygrateする rake db:migrate 6.serverをスタートする これで開始できると思います。

参考URL:
http://yamamoto.xrea.jp/2008/02/ruby-on-rails-20scaffold.php
misaki777v
質問者

お礼

すごく助かりました。 有難うございました。 また、よろしくお願いいたします。

関連するQ&A

  • Ruby on Railsについて

    Ruby on RailsでWebアプリケーションを作成します。 下記の順でやりました。 1、データベース表を作成。 2、新規アプリケーションの作成。 3、作成したアプリケーションがどのデータベースを使うのかを教える。 4、モデルの作成。 5、コントローラの作成。 6、新しいアプリケーションを起動。 ここでコマンドプロンプト画面内に表示されるポート番号を確認し、 Webブラウザを起動し、 アドレス欄に[http://localhost:ポート番号/アドレスブック/アドレスブックのリスト] を記入しました。 エラーが表示されました。 NoMethodError in PeopleController#list undefined method `scaffold' for PeopleController:Class

  • ruby on railsのエラーについて

    今、「ruby on rails」の勉強をしています。で、エラーについて質問なんですが、「ruby script/generate scaffold Article Admin」とコマンドプロンプト上で入力したのですが参考サイトのようにできません。 私の場合は、「対象のコンピュータによって拒否されたため、接続できませんでした。 - connect(2)」と最後にでて失敗します。 どうしたらうまく実行することができるのでしょうか?? 参考サイト(サイト上部): http://www008.upp.so-net.ne.jp/letitbe/rails003.htm

  • Railsで作ったものにdispatch.cgiがない

    Ruby on Railsで作成したものをApacheで動かそうとしたのですが、 「public/dispatch.cgi」などのファイルが存在しませんでした。 「.htaccess」も作成されていないようです。 InstantRails(Rails 2.0.2)で作成したものには上記ファイルは存在します。 何か必要なものがあるのでしょうか? 環境 -Windows XP + coLinux -Debian 5.0.2 -ruby 1.8.7 -rails 2.3.3 railsはapt-getとgemと両方入れています。 (どこかのサイトを参考にしたのですが、失念してしまいました・・・。) 入力 $ cd /var/www/rails $ rails myapp $ cd myapp $ script/generate scaffold note line:string $ rake db:migrate ls -a publicの結果 . 404.html 500.html images javascripts stylesheets .. 422.html favicon.ico index.html robots.txt

  • Ruby on Railsのmigrateについてです!

    初めまして、Ruby on Rails初心者の者です。 現在modelを5つ作成してあります。 そこで新たにmodel(6)を作成(コマンドプロンプトにて)したのですが、記述ミスがあったので今作成されたmodel(6)を削除しました。(データーベースからも) で、また同じ名前で作成したのですがエラーが何も表示されず、コマンドが入力できる状態になってしまいます。 ruby script/generate model モデル名  ↓正常 rake db:migrate  ↓何も表示されない コマンドが入力可能状態になる 何が原因なのでしょうか? 調べたのですが、私には分からずとても困っています 分かる方居ましたら、回答お願い致します。

    • ベストアンサー
    • Ruby
  • Ruby on Rails ; model validationが動作しない等

    昨日からRoRで開発している初心者です。 移行するとアプリケーションが動かなくなりました。 開発機でruby on rails + lighttpd + fastcgi にて rails xxx ruby script/generate scaffold yyy ・・・ と開発を進めていました。 そして同様構成の本番機に移行したところ、validateが動かないなど 様々な不具合がでています。 移行方法  本番機でrailsコマンドを実行  xxx以下のファイルを全てコピー ファイルをコピーするだけだと動作しないのでしょうか? 不具合:  1:時々 unknown action がでる  2:varidate(model/...)が動作しない 対処? 1:script/generateコマンドの発行が必要? ただしい移行方法をどなたか教えていただけませんか?

  • Ruby on Railsの環境構築

    どうにも困り果てております。 少し面倒な質問となってしまいますが、お答え頂けると助かります。 現在、Railsを利用したWEBアプリケーションを作成しようと、Railsの勉強をしているのですが、環境構築の段階でつまづいてしまいました。 具体的には、TerminalでRails sコマンド実行しても、WEBrickが起動せず、 /opt/local/lib/ruby/gems/1.8/gems/bundler-1.0.22/lib/bundler/rubygems_integration.rb:183:in `stub_source_index170': uninitialized constant Gem::SourceIndex (NameError) のようなメッセージが表示されてしまいます。 Mac OS X Lion 10.7.5を使用しております。 また、Terminalで -vコマンドを利用して確かめた所、 ruby 1.8.7 (2012-02-08 patchlevel 358) [i686-darwin11] gem 2.1.11 MacPorts 2.2.1 Rails 3.2.2 Xcode 4.2.1 が確認出来ました。 Terminalを使っての作業が初めてであったため、うまく説明出来ていない部分もあるとは思いますが、ご指導頂けると幸いです。 よろしくお願い致します。

    • ベストアンサー
    • Ruby
  • Ruby on Railsでデータベースに接続できない。

    Ruby on Railsでデータベースに接続できない。 『RailsによるアジャイルWebアプリケーション開発(第3版)』 http://www.amazon.co.jp/Rails%E3%81%AB%E3%82%88%E3%82%8B%E3%82%A2%E3%82%B8%E3%83%A3%E3%82%A4%E3%83%ABWeb%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%8B%E7%99%BA-Sam-Ruby/dp/4274067858/ref=sr_1_1?ie=UTF8&s=books&qid=1279209371&sr=8-1 という本でRuby on Railsの勉強をしています。現在、「第10章チェックアウト」の136ページあたりで行き詰っています。 ActiveRecord::AssociationTypeMismatch in StoreController#save_orderのメッセージが表示されていますが、どうやらデータベースに接続できていないようです。 configのdatabase.yml等を色々試行錯誤してみたり、色々ググってみたりしましたが、解決できませんでした。 どうやったらデータベースに接続できるのでしょうか。恐らくInstantRails-2.0に予め入っているMySQLやApacheと別々に入れたMySQLやApacheと競合しているからでしょうか。InstantRails-2.0の入っているMySQLやApacheは停止しています。 また、別々に入れたMySQLの方にはマイグレーション(?)で問題なくデータベースやテーブルが作成されています。なのにデータベースに接続できていないようです。 もう一つ、Ruby on Railsについて文字コードはcontrollers,helpers,models,views等に入っているファイルは全てutf-8にしなければならないでしょうか。何かWindowsでRuby on railsを開発するとコマンドプロンプトの関係でShift-JISに依存しているような気がします。

    • ベストアンサー
    • Ruby
  • ruby on rails チュートリアル

    チュートリアルの3章を勉強中なのですが(http://railstutorial.jp/chapters/static_pages?version=4.2#sec-generated_static_pages) リスト3-4で $ rails generate controller StaticPages home help このコマンドをしてから$ rails server -b $IP -p $PORTを入力すると => Booting WEBrick => Rails 4.2.4 application starting in development on http://0.0.0.0:8080 => Run `rails server -h` for more startup options => Ctrl-C to shutdown server [2015-11-11 09:39:15] INFO WEBrick 1.3.1 [2015-11-11 09:39:15] INFO ruby 2.2.1 (2015-02-26) [x86_64-linux] Exiting /usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/socket.rb:206:in `bind': Address already in use - bind(2) for 0.0.0.0:8080 (Errno::EADDRINUSE) from /usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/socket.rb:206:in `listen' from /usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/socket.rb:461:in `block in tcp_server_sockets' from /usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/socket.rb:232:in `each' from /usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/socket.rb:232:in `foreach' from /usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/socket.rb:459:in `tcp_server_sockets' from /usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/webrick/utils.rb:70:in `create_listeners' from /usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/webrick/server.rb:133:in `listen' from /usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/webrick/server.rb:114:in `initialize' from /usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/webrick/httpserver.rb:45:in `initialize' from /usr/local/rvm/gems/ruby-2.2.1/gems/rack-1.6.4/lib/rack/handler/webrick.rb:31:in `new' from /usr/local/rvm/gems/ruby-2.2.1/gems/rack-1.6.4/lib/rack/handler/webrick.rb:31:in `run' from /usr/local/rvm/gems/ruby-2.2.1/gems/rack-1.6.4/lib/rack/server.rb:286:in `start' from /usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.2.4/lib/rails/commands/server.rb:80:in `start' from /usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.2.4/lib/rails/commands/commands_tasks.rb:80:in `block in server' from /usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.2.4/lib/rails/commands/commands_tasks.rb:75:in `tap' from /usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.2.4/lib/rails/commands/commands_tasks.rb:75:in `server' from /usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.2.4/lib/rails/commands/commands_tasks.rb:39:in `run_command!' from /usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.2.4/lib/rails/commands.rb:17:in `<top (required)>' from /home/ubuntu/workspace/sample_app/bin/rails:8:in `require' from /home/ubuntu/workspace/sample_app/bin/rails:8:in `<top (required)>' from /usr/local/rvm/gems/ruby-2.2.1/gems/spring-1.1.3/lib/spring/client/rails.rb:27:in `load' from /usr/local/rvm/gems/ruby-2.2.1/gems/spring-1.1.3/lib/spring/client/rails.rb:27:in `call' from /usr/local/rvm/gems/ruby-2.2.1/gems/spring-1.1.3/lib/spring/client/command.rb:7:in `call' from /usr/local/rvm/gems/ruby-2.2.1/gems/spring-1.1.3/lib/spring/client.rb:26:in `run' from /usr/local/rvm/gems/ruby-2.2.1/gems/spring-1.1.3/bin/spring:48:in `<top (required)>' from /usr/local/rvm/gems/ruby-2.2.1/gems/spring-1.1.3/lib/spring/binstub.rb:11:in `load' from /usr/local/rvm/gems/ruby-2.2.1/gems/spring-1.1.3/lib/spring/binstub.rb:11:in `<top (required)>' from /home/ubuntu/workspace/sample_app/bin/spring:13:in `require' from /home/ubuntu/workspace/sample_app/bin/spring:13:in `<top (required)>' from bin/rails:3:in `load' from bin/rails:3:in `<main>' となってしまいますがこれってエラーですよね? ビューも開けないのですが、どなたか教えていただきたいです もしかしたら上のコマンド関係ないのかもしれないです。 よろしくお願いします。

    • ベストアンサー
    • Ruby
  • Ruby on Railsでアプリケーションを作りたいんですが、phpMyAdminでデータベース表の作成がうまく行かないです。

    Ruby on Railsの利用できる環境を構築します。 Ruby、Rails、データベース、Webサーバの4つをまとめてセットにしてしまったソフト【InstantRails】を使用します。 バージョン:InstantRails-2.0-win.zip をダウンロードしました。 そこで、Ruby on Railsでアプリケーションを作成して見ます。 まずは、データベース表を作成します。 【Instant Rails】ウィンドウでApacheボタンをクリックし、メニューからStartを指定しましたが、Start状態に変わってないのです。 いろいろ調べましたが、原因がわかりません。 すごく困ってます。 ご指導をお願いいたします。

  • Ruby on Rails によるデータベース作成

    Rubyもよくわからない初心者ですが、「かんたんRuby on RailsでWebアプリケーション開発」という本を見ながらデータベースを作成しています。Railsのバージョンは1.1.2、データベース管理はMySQLを使っています。 マイグレーションの作成まではうまく行っていると思うのですが、001_create_table.rbの修正、database.ymlの設定を行い、マイグレーション、scaffoldを実行してブラウザで表示すると、表示されないフィールドがあります。 001_create_table.rbでは次の部分を追加しています。 create_table(:items) do |table| table.column :index, :string, :limit => 32 table.column :pos, :string, :limit => 8 table.column :cid, :string, :limit => 32 table.column :type, :string, :limit => 5 table.column :flq, :integer table.column :ns, :string, :limit => 6 table.column :cflg, :integer table.column :wflg, :integer end 何回かやり直してみましたが、↑この中のtypeというフィールドがどうしても表示されません。 どこを直したらいいのか教えてください。 よろしくお願いします。

専門家に質問してみよう