无法让mongoid在Rails 4中以1:1工作

时间:2014-01-02 14:50:01

标签: ruby-on-rails mongoid

Rails 4.0.1 Ruby 2.0.0 p247

嗨 - 刚刚遇到mongoid和rails 4的问题 - 已经选择了一个简单的例子(1:1)来尝试在rails中工作,但到目前为止还没有骰子。到目前为止我已经完成了这些步骤

rails new musicstore --skip-active-record

=> edit gemfile

gem 'mongoid', :github => 'mongoid/mongoid' 

rails g mongoid:config

mongod run --config /local/usr/etc/mongod.conf

(new term)

rails g Band name:string
rails g Studio studioname:string

按如下方式编辑以下课程......

class Band
  include Mongoid::Document
  has_one :studio
end

class Studio
  include Mongoid::Document
  field :name, type: String
  belongs_to :band
end

运行控制台

At this point if I run

2.0.0p247 :005 > Band.studio 

我为Band:Class 获得未定义的方法`studio'(在工作室周围有不同的引号......与命名相关?)

此外,如果我创建一个Band记录(Band.create!name:=>“test”,我没有看到该孩子的任何记录,类似......

{ "_id" : ObjectId("4d3ed089fb60ab534684b7e9") }

  {
   "_id" : ObjectId("4d3ed089fb60ab534684b7f1"),
   "band_id" : ObjectId("4d3ed089fb60ab534684b7e9")
  }
}

无论如何,它让我感到难过 - 任何帮助都表示赞赏。

干杯!

1 个答案:

答案 0 :(得分:0)

class Band
  include Mongoid::Document
  field :name
  has_one :studio
end

class Studio
  include Mongoid::Document
  field :name, type: String
  belongs_to :band
end

my_band = Band.create
my_band.studio
# => nil
my_band.studio = Studio.create

您看到Band.studio不正确。首先尝试创建/初始化乐队 另外,如何为方法提供参数不正确(Band.create! name: => "test")。这样做:Band.create! name: "test"Band.create! :name => "test"。不要两者结合:)