我在AppFog上有一个rails应用程序,连接到一个mongo数据库。这是一个非常简单的数据库,我使用mongo_mapper gem创建MVC内容,然后没有修改它。
rails g scaffold Contacts name:string address:string email:string phone:string -orm mongo_mapper
非常基本!只是试图将mongo作为数据库进行测试。
我按照说明与数据库here交谈。
但是,每次尝试访问/contacts
路径时,都会收到“500 Internal Server Error”消息。
AppFog记录我的应用报告:
Started GET "/contacts" for 50.193.89.38 at 2013-04-03 21:18:58 +0000
Processing by ContactsController#index as HTML
Completed 500 Internal Server Error in 0ms
NoMethodError (undefined method `collection' for nil:NilClass):
app/controllers/contacts_controller.rb:5:in `index'
我的联系人控制器文件的第一个块:
class ContactsController < ApplicationController
# GET /contacts
# GET /contacts.json
def index
@contacts = Contact.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: @contacts }
end
end
....
任何帮助都会很棒。
== UPDATE ==
$ rails console
irb(main):001:0> Contact.all
=> []
使用rails s
工作正常,我根本没有得到500错误。
答案 0 :(得分:0)
模型的名称应该是单数,即Contact
而不是Contacts
。
rails g scaffold Contact name:string address:string email:string phone:string -orm mongo_mapper
您创建的方式使模型的名称为Contacts
而不是Contact
。因此,当您尝试Contact.all
时,您会获得nil
。