我想创建引用另一个模型:
class User
include Mongoid::Document
field :name, :type => String
belongs_to :post
end
class Post
include Mongoid::Document
field :content, :type => String
has_one :author, :class_name => 'User'
end
但我很困惑如何使 mongoDB 根据模型文件(user.rb,post.rb)的规则工作。
首先我创建了模型抛出命令行:
rails generate model User name:string
rails generate model Post content:string
然后我手动编辑了模型文件。我添加了这一行
belongs_to :post
has_one :author, :class_name => 'User'
然后我在一个动作中运行代码:
post = Post.new
post.content = "text"
post.author = User.new
post.save!
作为数据库的结果,我只看到内容字段。没有作者字段。
我应该怎么做,我做错了什么?
[ANSWER] 我混淆了 has_to 和 belongs_to 地方。所以正确的模型看起来像:
class User
include Mongoid::Document
field :name, :type => String
has_many :post
end
class Post
include Mongoid::Document
field :content, :type => String
belongs_to :author, :class_name => 'User'
end
其他一切都保持不变。