在rails中创建多对多的关系

时间:2010-01-03 17:17:46

标签: ruby-on-rails

用户可以对帖子进行投票,因此我在rails中设置了多对多的关系:

用户有很多选票 帖子有很多票

帖子有很多用户通过投票 用户通过投票获得了很多帖子

是否有更优雅的方式来创建新投票:

user.votes.create(:post_id => post.id).save

?感谢

2 个答案:

答案 0 :(得分:1)

至少有一种“标准”方式。我认为这是从某个地方的形式进来的。所以就像这样传递参数:

 @vote = Vote.new(params[:vote])
 @vote.user = current_user
 if @vote.save
      ...
 else
      ...
 end

答案 1 :(得分:-1)

投票不值得拥有自己的实体。只需将一个计数器(或两个)添加到帖子模型中。我建议使用以下代码:

user.votes_for(post)

或者在stackexchange平台的情况下:

user1.votes_up(post)
user2.votes_down(post)