【问题标题】:Datamapper two associations at the same timeDatamapper同时进行两个关联
【发布时间】:2012-07-01 23:53:47
【问题描述】:

假设我有一个帖子,这个帖子应该有一定数量的 cmets,这些 cmets 应该由一定的用户创建。所以这些是我的数据映射器模型:

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

[...]

所以基本上模特帖子应该与模特评论和模特帖子相关联,我如何实现这一点?

【问题讨论】:

    标签: ruby sinatra datamapper


    【解决方案1】:
    comment = Comment.create :post => post, :user => user, :text => 'Foo'
    

    【讨论】:

    • 当时我是否必须更改模型,还是可以保留它们现在的样子?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-03
    • 1970-01-01
    相关资源
    最近更新 更多