gpt4 book ai didi

ruby-on-rails - 新帖子的 Rails 通知

转载 作者:行者123 更新时间:2023-12-04 05:33:14 25 4
gpt4 key购买 nike

我正在开发一个用户可以发布的 rails 应用程序,必须喜欢 facebook。我想实现一个通知系统,提醒用户有新帖子。但是,我在如何判断用户是否查看过帖子方面遇到了麻烦。我真的一无所知。

我正在使用设计 gem,它使我可以访问某些用户统计信息(如果有帮助):

  create_table "users", :force => true do |t|
t.string "email", :default => "", :null => false
t.string "encrypted_password", :default => "", :null => false
t.string "reset_password_token"
t.datetime "reset_password_sent_at"
t.datetime "remember_created_at"
t.integer "sign_in_count", :default => 0
t.datetime "current_sign_in_at"
t.datetime "last_sign_in_at"
t.string "current_sign_in_ip"
t.string "last_sign_in_ip"
t.string "confirmation_token"
t.datetime "confirmed_at"
t.datetime "confirmation_sent_at"
t.string "unconfirmed_email"
t.integer "failed_attempts", :default => 0
t.string "unlock_token"
t.datetime "locked_at"
t.string "authentication_token"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.string "username", :default => "", :null => false
t.integer "admin", :default => 0
end

还有我的帖子模型:
  create_table "posts", :force => true do |t|
t.integer "user_id"
t.text "content"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end

如何实现一个知道用户是否看过帖子的系统?

最佳答案

简单的方法是这样的:

创建一个名为 的模型看过

rails g model Seen post:references user:references

模型/seen.rb
belongs_to :user
belongs_to :post

模型/user.rb
has_many :seens
has_many :seen_posts, through: :seens, source: :post

模型/post.rb
has_many :seens
has_many :seen_users, through: :seens, source: :user

你可以创建一个类似的方法

模型/post.rb
def seen_by?(user)
seen_user_ids.include?(user.id)
end

Controller /posts_controller.rb
def show
@post = Post.find(params[:id])
current_user.seen_posts << @post unless @post.seen_by?(current_user)
end

关于ruby-on-rails - 新帖子的 Rails 通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12316342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com