RuntimeError in RecordController#find
解決済
回答 2
投稿
- 評価
- クリップ 0
- VIEW 1,959
ローカルのMacにRailsの環境を構築しています。
app/controller/にrecord_controller.rbというファイルを作り次を記述しました。
def find
@books = Book.find([1,2,3])
render 'hello/list'
end
そこで、localhost:3000/record/find
にアクセスしたところ、
Circular dependency detected while autoloading constant RecordController
とエラーが出ました。
これの原因は何なのでしょうか?
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
+1
Ruby on Rails初心者です。Ruby on Railsは「設定より規約(Conversion over Configuration)」という思想があります。
つまり、ファイル名、ファイルの配置場所、クラス名がとても重要になっています。
あなたの設定がわからなかったので自分で同じようなことをしてみました。
クラス名やファイルのパスに十分に注意してください。
Railsプロジェクトを作成
$ rails new record_project
Bookのモデルファイルとマイグレーションファイル(DBにテーブルを作成するファイル)を作成する。
$ rails g model Book name
invoke active_record
create db/migrate/20150101214634_create_books.rb
create app/models/book.rb
マイグレーションを実行する。booksテーブルが作成される。
$ rake db:migrate
== 20150101214634 CreateBooks: migrating ======================================
-- create_table(:books)
-> 0.0014s
== 20150101214634 CreateBooks: migrated (0.0014s) =============================
RecordControllerを作成する。コントローラーファイル内にfindというアクション(メソッド)を定義し、ルートにもfindを追加する。さらにfindというビューファイルを作成する。
$ rails g controller record find
create app/controllers/record_controller.rb
route get 'record/find'
invoke erb
create app/views/record
create app/views/record/find.html.erb
...
ルート定義ファイル:config/routes.rb
変更なし(上記のrails gコマンドで自動で作成される)
Rails.application.routes.draw do
get 'record/find'
end
モデルファイル:app/models/book.rb
変更なし(上記のrails gコマンドで自動で作成される)
class Book < ActiveRecord::Base
end
コントローラーファイル:app/controllers/record_controller.rb
ロジックを実装する
class RecordController < ApplicationController
def find
@books = Book.find([1,2,3])
render 'hello/list'
end
end
ビューファイル:app/views/hello/list.html.erb
ビューで表示したい内容を記載する
<h1>hello/list.html.erb</h1>
<ul>
<% @books.each do |book| %>
<li><%= book.name %>
<% end %>
</ul>
レコードを3件登録する
$ rails console
irb(main):001:0> Book.create name: "book 1"
irb(main):002:0> Book.create name: "book 2"
irb(main):003:0> Book.create name: "book 3"
irb(main):004:0> exit
$ rails server でサーバーを起動し、localhost:3000/record/find にアクセスする

投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
+1
* Rails チュートリアル - RailsTutorial.jp
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.19%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2015/01/02 23:53
大変参考になりました。