我想創建它引用到另一個模型mongoid型號:創建引用
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!
至於結果在數據庫中,我看到的只有內容字段。沒有作者字段。
我該怎麼做,我做錯了什麼?
[答案] 我困惑了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
其他的一切保持在問題。
哦對不起,以上僅適用於嵌入式對象。 其實,你可以使用這種伎倆看到「belongs_to的」字段: '後= Post.new Post.find(後)' 我還在尋找一種方式來顯示所有「的has_many」引用 –