У меня огромное количество проблем при работе с 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
Что, черт возьми, происходит со мной?У кого-нибудь есть идея?