Ruby on rails 添加只喜欢一次帖子的功能

Ruby on rails 添加只喜欢一次帖子的功能,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 4,我的web应用程序上有一个“喜欢/不喜欢”系统。但有一个问题:我需要用户只喜欢一次(不再喜欢),但不知道如何实现这一点。我想,我可以做一个新的模型,它将通过:槽连接。 我想我能做到 class Post < ActiveRecord::Base has_and_belongs_to_many :users end class User < ActiveRecord::Base has_and_belongs_to_many :posts end class Post

我的web应用程序上有一个“喜欢/不喜欢”系统。但有一个问题:我需要用户只喜欢一次(不再喜欢),但不知道如何实现这一点。我想,我可以做一个新的模型,它将通过:槽连接。 我想我能做到

class Post < ActiveRecord::Base
  has_and_belongs_to_many :users
end
class User < ActiveRecord::Base
  has_and_belongs_to_many :posts
end
class Post
在我看来,这将是一个非常容易解决的问题。您需要将这样的代码粘贴到处理“喜欢”和“不喜欢”功能的模型文件中:

validates_uniqueness_of :post_id, scope: :user_id
这将确保post_id和user_id对在模型级别是唯一的。要将唯一性验证引入数据库,请在控制喜欢/不喜欢的表的迁移文件中执行类似的操作:

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

如果您对如何让它为您工作有任何疑问,请告诉我

您目前是如何实现它的?您添加了post和user类。那么喜欢/不喜欢的实现呢?它已经完成了,我只是在谈论从一个用户创建一个singe-like的能力是的!展示你是如何实现“喜欢/不喜欢”的。将您的like限制为每个用户只有一个like将遵循您的初始实现。