添加像Post一样的功能

时间:2015-12-23 00:53:26

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4

我在我的网络应用程序上有一个喜欢/不喜欢的系统。但是有一个问题:我需要用户可以只喜欢这个帖子一次(不多),但不知道我怎么能实现这个。我想,我可以制作一个新模型,它将通过:trough进行连接。 我想我能做到这一点

class Post < ActiveRecord::Base
  has_and_belongs_to_many :users
end
class User < ActiveRecord::Base
  has_and_belongs_to_many :posts
end

1 个答案:

答案 0 :(得分:1)

在我看来,这将是一个非常简单的问题。您需要将此类代码粘贴到处理喜欢和不喜欢功能的模型文件中:

validates_uniqueness_of :post_id, scope: :user_id

这将确保您的post_id和user_id对在模型级别是唯一的。要将该唯一性验证带到数据库,请在迁移文件中为控制喜欢/不喜欢的表实现类似的功能:

add_index :nameofclass, [:user_id, :post_id], unique: true

如果您对此有任何疑问,请与我们联系