• 締切済み

Rails2.3でのserver/script再起動について

Rails2.3でのserver/script再起動について 2.2.2を利用していたのですが、2.3.5へアップデートしようとしています。 rails 2.3.5のインストールは無事、完了し、プロジェクトを作成しました。 controller名を「hoge」にて、server/scriptにてwebrickを起動しました。 次にcontrollerにて、indexアクションを作成し、viewにて対応するindex.html.erbを作成しました。 ブラウザにて、http://localhost:3000/hoge/indexにアクセスすると、 「Template is missing」となってしまいます。 webrickを再起動し、再度アクセスすると正常に表示されます。 rails 2.2.2までは、development環境下では、 viewのファイル追加では再起動が不要だった(config以下は必要だった)と認識しているのですが、 rails 2.3では再起動が必要になったのでしょうか?ちなみにmongrel 1.1.5で行っても同じでした。 どなたかご教授お願いいたします。

  • Ruby
  • 回答数1
  • ありがとう数4

みんなの回答

  • mimzy
  • ベストアンサー率33% (32/96)
回答No.1

因みに私の環境は、Rails-2.3.3ですが同じ事をすると、 「Template is missing」ではなく Routing Error No route matches "/foo/index" with {:method=>:get} と出ます。 この場合config/routes.rbにmap.resources :fooとか書いてやるとwebrickの 再起動なしにアクセスできます。 routes.rbの仕様が大幅に変更になったようなことを聞きました。 今後Railsを使用するにはroutes.rbを避けて通れないと思います。

関連するQ&A

  • railsのscaffoldにて作成したプロジェクトの

    railsのscaffoldにて作成したプロジェクトの ViewsのEditのlink_toの第二引数の値がどこで設定されているかわかりません。 例えば、モデル名を"student"にてscaffoldを実行すると、 index.html.erbのEditはこのようになります。 <td><%= link_to 'Edit', edit_student_path(student) %></td> この"edit_student_path"というのが、何者なのかよくわかりません。 どこかで定義されているわけでもなく、動的に生成されているようですが、 仕組みが全くわかりません。 出力されたhtmlの該当部分はこのようになってます。 <a href="/students/1/edit">Edit</a> 現在、scaffoldにて生成したコントローラとビューを一階層掘り下げようとしている所で、出くわした問題です。 controllers/students_controller.rb views/students/index.html.erb ↓ controllers/hoge/students_controller.rb views/hoge/students/index.html.erb どなたかご教授いただけますでしょうか? ちなみにrailsのバージョンは2.3.5です。

    • ベストアンサー
    • Ruby
  • Rails3でAjaxを使いたい

    どなたが知識をご教授下さい。 Rails3でAjaxのごく普通のハイパーリンクを作成したいのですが、うまくいきません。 /users/index.html.erb <div id="hoge"> <%= link_to "ajax",{:action => 'draw'},:remote => true %> </div> -- /users/_draw.html.erb ~いろいろ内容~ -- /users/draw.js.erb $('#hoge').html("<%= escape_javascript(render :partial => 'draw' )%>"); -- /users_controller.rb def draw ~いろいろ処理~ end -- ルーティング match 'users/draw' => 'users#draw' -- application.html.erb <%= javascript_include_tag :defaults %> -- gemfile gem 'jquery-rails' 以上のように処理するよう様々なサイトや書籍にはありましたが、「Templete Missing」のエラーが出てしまいます。かれこれ5時間以上ハマってまして、、、 どなたか知識をご教授頂けたら幸いです。 *メモ アクションdrawに渡ったときに、 「request.xhr?がfalse」ということは、ajax通信できていないということでしょうか???

    • ベストアンサー
    • Ruby
  • railsのWEBrickを止める

    railsをリモートのサーバーで動かしながらいじっていたのですが、WEBrickを起動したままターミナルを閉じてしまい、次にSSHでログインしてWEBrickを起動しようとしても、「Address already in use」と表示されて終了方法がわかりません。 リモートのサーバーは使えるポート番号が決められていて、その1つしかポートが使えません。 どうにかして、WEBrickを終了させることはできませんでしょうか? 以下経緯です。 SSHでログイン rails test cd test script/server -p ポート番号 SSHログオフ SSHログイン WEBrickが起動しっぱなしで終了できないので、testディレクトリを削除してもWEBrickは起動したまま。「rails test2」として、WEBrickを起動しようとしてもAddress already in useと表示される。

  • Ruby on Railsでサーバがセットアップされたことが確認できない

    送ればせながら、RoRどんなもんだろうと http://masuidrive.jp/rails/rails_app.html にしたがって、使い始めてみています。 WindowsXP SP2環境です。 プロジェクトを作ってWEBrickを起動(% ruby script\server)して http://localhost:3000 にアクセスしても、タイムアウトしてしまいます。 ※起動時には、エラーメッセージは出ていません Windowsファイヤーウォールを切ってアクセスしてみたりしていますが、何か基本的なところでつまづいている気がしてきています。 考えられる原因やチェックすべき箇所があれば、教えてください。

  • Railsで500サーバーエラー

    Railsでコントローラーをつかわずにtest_controler.rbとindex.rhtmlを作成して各ディレクトリに置きました。コントローラーはdef index endだけのシンプルなものです。インデックスは空ページです。これでアクセスしたところ500エラーになりました。ジェネレータから作成しなければいけないのでしょうか よろしくお願いします。

    • ベストアンサー
    • Ruby
  • railsのテンプレートファイル名について

    はじめまし.て。 私は今railsの勉強をしています。 そこでかなり初歩的な質問になってしまいますが、エラーになってしまい、 調べても関連の物が出てこないため、質問させていただきます。 現在、rails3.0.15をしようしていまして、 参考書にテンプレートファイルの作成は /app/viewsフォルダはいかに「コントローラ名/アクション名.html.erb」という名前で保存する と記載されております。 ですので、hello/view.html.erbという名前を作成しろと記載されているので、 同じようにしたのですが、そもそも[/]がファイル名として使えないため、 hello/view.html.erbで保存できません。 どうしたらよいでしょうか。 本当に初歩的な質問かもしれませんが、できなくて前に進めません。。。。 どうかご回答よろしくお願いいたします。

  • Rails3でのルーティングの書き方

    Ruby1.9.3とRails3.2.9の環境でのルーティングではまってしまっているので、御経験のある方、御教示ください。現在、 config/routes.rbに Sample::Application.routes.draw do resources :users resources :tasks match '/users/login' match '/users/logout' match ':controller(/:action(/:id))' match ':controller(/:action(/:id))(.:format)' end を記述して、WEBrickを起動して、 http://localhost:3000/users/login/ を実行すると、このアドレスには移動するのですが、 NoMethodError in Users#show Showing C:/user/Ruby193/rails/sample/app/views/users/show.html.erb where line #5 raised: のエラーが出ます。 WEBrickの表示を見てみると、 Started GET "/users/login/" for 127.0.0.1 at 2013-01-22 22:56:06 +0900 Processing by UsersController#show as HTML Parameters: {"id"=>"login"} Rendered users/show.html.erb within layouts/users (2.0ms) Completed 500 Internal Server Error in 5ms となっていて、/users/login/をGETしているのですが、アクションでshowが呼び出されて、そのIDとして loginが渡っているように見えます。 現在、users\controller.rbのshowの関数の定義は全てコメントアウトしています。usersコントローラの def login関数の定義と、app/views/users/login.html.erbも置いているのですが、それらが表示されない状態で原因が分かりかねています。 上記のルーティングの書き方に何か問題があるのでしょうか?

    • ベストアンサー
    • Ruby
  • railsでアプリケーションコントローラーで宣言し

    rails3.1でアプリケーションコントローラーで宣言したインスタンス変数をビューで使いたいのですがnilが帰ってきます。参照する方法はあるでしょうか 以下のようになっています ●applicationコントローラー def example @test = "hoge" end ●アクションメソッド after_fileter :example def index ~~~ end ●ビュー <%= @test %> これでビューから@testがnilを返してしまいます よろしくお願いします。

  • Railsでのpaginateの方法

    Rails3.2.9でのpaginateがうまくいきません。 分かる方、御教示ください。 今のところ、下記の状態です。 (1)Ruby193/lib/ruby/gems/1.9.1/gemsの下に、mislav-will_paginate-2.3.11  をインストールした。 (2)Ruby193/rails/demand/Gemfileに gem 'mislav-will_paginate', '~> 2.3' を追加した。 (3)コマンドプロンプトで、>bundle installを実行 Using mislav-will_paginate (2.3.11)となっていることを確認 (4)app/controller/demandapps_controller.rb のdef indexの@demandapps = Demandapp.allを @demandapps = Demandapp.paginate(:page => params[:page], :per_page => 15) に変更 (5)app/views/demandappsのindex.html.erbの <table>~</table>の下に <%= will_paginate(@items) %> を追加。 この状態でWEBrickを動かすと、 NoMethodError in DemandappsController#index undefined method `paginate' for #<Class:0x3c0a218> app/controllers/demandapps_controller.rb:5:in `index' のエラーが出ます。paginateが認識されていないようなのですが、 この他にどこか設定しないといけない個所とかあるのでしょうか? よろしくお願い致します。

    • ベストアンサー
    • Ruby
  • Railsにおける逆引きの無効

    ruby1.8.6 & rails2.3.4 & Win2003環境下でrailsアプリを作っています。 ある程度作りこんで  ruby script/server で起動したところローカル(サーバ上)だと画面表示は速いのに別のPC(クライアント)から接続すると時間がかかります。いろいろ調べたところ、どうやらサーバがクライアントのPCの名前解決をしようとしているようです。いわゆるIPからの逆引きをしようとしてタイムアウトまで待ってから画面を表示している模様。そこでサーバ側のhostsにクライアントPCのhostsを書けば早くなりました。しかしこれだと不特定PC向けにWEBサーバを公開できないので、この逆引きを無効にさせたいとおもっていますが、やり方がわかりません。どこのファイルにどんなふうに書けばよいのでしょうか? デフォルトだとサーバはwebrickなのでwebrick::genericserverにある DoNotReverseLookupあたりを書けばよいのかもしれませんが、どのファイルにどんな風に書くのかわかりませんし、そもそもこの考え方が間違っているかもしれません。 どなたかわかる方いないでしょうか?

専門家に質問してみよう