通过belongs_to访问文档的mongoid字段

时间:2013-11-27 15:09:24

标签: ruby-on-rails mongoid

所以这是我要问的一个例子 我有一个帖子模型和一个作家模型。

class Post
  include Mongoid::Document
  ...
  belongs_to :writer, class_name: 'Writer', inverse_of: :posts
end

class Writer
  include Mongoid::Document
  field :name,   :type => String
  has_many :posts, inverse_of: :writer
end

从其他设计考虑因素来看,帖子未嵌入到编写器模型中。

现在我希望在帖子视图中显示作家姓名。 类似的东西:

<div>
  Writer: <%= @post.writer.name %>
</div>

现在默认的脚手架控制器。

我注意到的第一件事是,在mongo中,字段是writer_id。

那么从id中推断名称的正确方法是什么(另一个查询?真的吗?)

我得到的错误:
undefined method `name' for nil:NilClass

当我在rails console中尝试时:
ccc=Post.find_by(name:"bla bla")
ccc.writer >>> nil
ccc.writer_id >>> "5284c0bc1d41c837c1000001"

1 个答案:

答案 0 :(得分:0)

嗯 - 确实应该有效。我在错误的树上吠叫。如果有人像我一样认为这是他们的问题 - 看看这里发生了什么: multiple belongs_to in mongoid