Не удается создать документ MongoDB с помощью Rails - PullRequest
1 голос
/ 04 сентября 2011

У меня огромное количество проблем при работе с MongoDB и Rails.Я пытаюсь создавать пользовательские каналы, но Rails продолжает оскорблять меня, когда я пытаюсь сохранить документ.Я просто не знаю, что происходит, и документация, кажется, не помогает (насколько я знаю, я все сделал по книге).

Вот отношения, которые я сделал:

class Feed
  include Mongoid::Document
  field       :name,        :type => String
  field       :description, :type => String
  has_many    :feedposts
  embedded_in :user
end

class Feedpost
  include Mongoid::Document
  field :title    => String
  field :text     => String
  field :resource => String
  field :time     => Time, :default => -> { Time.now }
  belongs_to  :feed
  embeds_many :comments
end

class Comment
  include Mongoid::Document
  has_one :user
  field   :text => String
  field   :time => Time, :default => -> { Time.now }
  embedded_in :feedpost
end

При попытке сохранить фид (без фидпоста или комментария подразумевается) он просто говорит мне, что метод "новый?"не определен для NilClass.Я получил эту трассировку от Rails:

activesupport (3.1.0.rc5) lib/active_support/whiny_nil.rb:48:in `method_missing'
mongoid (2.2.0) lib/mongoid/persistence/operations/embedded/insert.rb:31:in `block in persist'
mongoid (2.2.0) lib/mongoid/persistence/insertion.rb:26:in `block (3 levels) in prepare'
activesupport (3.1.0.rc5) lib/active_support/callbacks.rb:390:in `_run_create_callbacks'
activesupport (3.1.0.rc5) lib/active_support/callbacks.rb:81:in `run_callbacks'
mongoid (2.2.0) lib/mongoid/persistence/insertion.rb:25:in `block (2 levels) in prepare'
activesupport (3.1.0.rc5) lib/active_support/callbacks.rb:390:in `_run_save_callbacks'
activesupport (3.1.0.rc5) lib/active_support/callbacks.rb:81:in `run_callbacks'
mongoid (2.2.0) lib/mongoid/persistence/insertion.rb:24:in `block in prepare'
mongoid (2.2.0) lib/mongoid/persistence/insertion.rb:22:in `tap'
mongoid (2.2.0) lib/mongoid/persistence/insertion.rb:22:in `prepare'
mongoid (2.2.0) lib/mongoid/persistence/operations/embedded/insert.rb:30:in `persist'
mongoid (2.2.0) lib/mongoid/persistence.rb:44:in `insert'
mongoid (2.2.0) lib/mongoid/persistence.rb:149:in `upsert'

РЕДАКТИРОВАТЬ: Вот, это контроллер:

class FeedsController < ApplicationController
  def index
    @user  = CurrentUser()
    @feeds = @user.feeds
  end

  def create
    @feed   = Feed.new params[:feed]
    success = @feed.save # This is the line that trigger the error
    render json: { :success => success }
  end
end

И это конфигурация Mongoid:

development:
  host: localhost
  database: noosphere_development

Что, черт возьми, происходит со мной?У кого-нибудь есть идея?

...