我在我的网络应用程序上有一个喜欢/不喜欢的系统。但是有一个问题:我需要用户可以只喜欢这个帖子一次(不多),但不知道我怎么能实现这个。我想,我可以制作一个新模型,它将通过:trough进行连接。 我想我能做到这一点
class Post < ActiveRecord::Base
has_and_belongs_to_many :users
end
class User < ActiveRecord::Base
has_and_belongs_to_many :posts
end
答案 0 :(得分:1)
在我看来,这将是一个非常简单的问题。您需要将此类代码粘贴到处理喜欢和不喜欢功能的模型文件中:
validates_uniqueness_of :post_id, scope: :user_id
这将确保您的post_id和user_id对在模型级别是唯一的。要将该唯一性验证带到数据库,请在迁移文件中为控制喜欢/不喜欢的表实现类似的功能:
add_index :nameofclass, [:user_id, :post_id], unique: true
如果您对此有任何疑问,请与我们联系