0

私が投稿を持っているとしましょう。この投稿には認証者のコメントが必要であり、これらのコメントは認証者のユーザーが作成する必要があります。これが私のデータマッパーモデルです。

class User
include DataMapper::Resource

property :id, Serial
property :name, String,
property :password, String

has n, :post
end

class Post
include DataMapper::Resource

property :id, Serial
property :text, Text
property :created_at, DateTime

belongs_to :user
end

class Comment
include DataMapper::Resource

property :text, Text,
property :created_at, DateTime

belongs_to :post
belongs_to :user
end

たとえば、ユーザーxが投稿を作成し、ユーザーyがこの投稿へのコメントを作成したいとします。では、どうすればこれを行うことができますか?私はこのようなものが必要です:

user = User.get(sessions[:user_id])
post = Post.get(params[:post_id])
comment = post.user.Comment.new {
:text => "Bla",
[...]
}

[...]

comment.save

[...]

基本的に、モデル投稿はモデルコメントとモデル投稿に関連付ける必要がありますが、これをどのように実現しますか?

4

1 に答える 1

3
comment = Comment.create :post => post, :user => user, :text => 'Foo'
于 2012-07-01T15:53:47.317 に答える