0

我在 AppFog 上有一个 rails 应用程序,连接到 mongo 数据库。这是一个非常简单的数据库,我使用 mongo_mapper gem 来创建 MVC 的东西,然后没有修改它。

rails g scaffold Contacts name:string address:string email:string phone:string -orm mongo_mapper

真的很基本!只是试图测试 mongo 作为数据库。

我按照此处与数据库交谈的说明进行操作。

但是,每次我尝试访问该/contacts路径时,都会收到“500 内部服务器错误”消息。

我的应用报告的 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
....

任何帮助都会很棒。

==更新==

$ rails console
irb(main):001:0> Contact.all
=> []

并且使用rails s效果很好,我根本没有收到 500 错误。

4

1 回答 1

0

模型的名称应该是单数,即Contact而不是Contacts

rails g scaffold Contact name:string address:string email:string phone:string -orm mongo_mapper

您创建的方式使模型的名称成为Contacts而不是Contact。因此,当您尝试时,Contact.all您会得到nil.

于 2013-04-03T22:20:32.533 回答