用户可以对帖子进行投票,因此我在rails中设置了多对多的关系:
用户有很多选票 帖子有很多票
帖子有很多用户通过投票 用户通过投票获得了很多帖子
是否有更优雅的方式来创建新投票:
user.votes.create(:post_id => post.id).save
?感谢
答案 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)