1

投稿用と返信用の2つのドキュメントを作成し、「参照1-N」関係を使用してそれらを接続しようとしています。

私がmongoidのドキュメントから読んだことから、あなたがしなければならないのは、has_many両方belongs_toのクラスに追加することだけです。mongoidを使用すると、親を指す子ドキュメントを追加できます。

だから私がやりたいのは簡単です

  1. 親を指す新しい返信ドキュメントを作成します
  2. 可能であれば、子のIDを保持する配列を作成します

投稿からの返信にあらゆる方法でアクセスしようとしましたが、機能しません。だから誰かが私のためにこのパズルを解くことができれば素晴らしいでしょう:)

出力

#<PostsControllerの未定義メソッド'reply':>

モデル

class Post
  include Mongoid::Document
  has_many :replies
  field :text,:type => String
end

class Reply
  include Mongoid::Document
  belongs_to :post
  field :name, :type => String
  field :text, :type => String
end 

コントローラ

def create_reply
  post = Post.find(params[:post_id])
  post.reply.new(params[:post])
end
4

1 に答える 1

2

replyは ではなくが多いため、Postクラスでは定義されていません。Postrepliesreply

代わりにメソッドを記述post.replies.new(params[:post])してみてください。create_reply

于 2012-11-19T20:09:38.987 に答える