0

この奇妙なエラーが発生しました。サーバーを起動すると、すべて正常に動作します。

ブラウジングするhttp://lvh.me:3000/admin/topicsと正しく表示されます

次に、コントローラーで何かを変更する空白行を追加するだけでも)、レールは次のように言います:

Routing Error
uninitialized constant Admin::TopicsController::Topic

更新すると、次のように表示されます。

NoMethodError in Admin/topics#index
Showing /Users/john/Code/v2/app/views/admin/topics/index.html.erb where line #12 raised:
undefined method `each' for nil:NilClass

その後、サーバーを再起動すると、すべてが正常に戻ります。コントローラーで何かを変更すると、再び発生します。

この URL でのみ発生します。

私のルートは次のとおりです。

  namespace :admin do
    resources :topics do
      resources :comments, :controller => "topic/comments"
    end
    resources :attachments
  end

関連するコントローラーは次のとおりです。

app/controllers/admin/topics_controller.rb
app/controllers/admin/topic/comments_controller.rb

最初は正常に動作するのに、コントローラーを変更すると (空白行を追加しても) 壊れてしまうのは本当に奇妙です。コメント コントローラーがトピック フォルダーの下にある可能性はありますか?

4

2 に答える 2

0

X::Y::Z非 gem クラスは で終わるパスで見つける必要があるという Rails の規則に違反していると思いますx/y/z.rb。逆もまた同様です。おそらく、そのコントローラーに名前をTopicCommentsController付けて、 に配置する必要がありapp/controllers/admin/topic_comments_controller.rbます。

于 2012-04-12T09:29:43.627 に答える
0

フォルダ名を から に変更したtopicところtopics、問題はなくなりました。理由は定かではありませんが、おそらく慣習が限界に追いやられているのでしょう。

于 2012-04-13T04:40:46.233 に答える