2013-04-03 2 views
0

У меня есть приложение rails на AppFog, подключенное к базе данных монго. Это очень простая база данных, где я использовал камень mongo_mapper для создания материала MVC, а затем не изменял его.Почему я получаю NoMethodError с моим рельсовым приложением в AppFog?

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

ДЕЙСТВИТЕЛЬНО основной! Просто пытаюсь проверить монго как базу данных.

Я следовал инструкциям для разговора с базой данных 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

В консоли, что вы получаете, когда пытаетесь «Contact.all»? – PinnyM

+0

'irb (main): 002: 0> Contact.all' ' => [] ' – StoicJester

ответ

0

Название модели должно быть сингулярным, т.е. Contact, а не Contacts.

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

, как вы создали, делает название модели будет Contacts и не Contact. Поэтому, когда вы пробуете Contact.all, вы получаете nil.

+0

, когда я использую' rails s' и запускаю его на localhost, он отлично работает. – StoicJester

Смежные вопросы