gpt4 book ai didi

ruby-on-rails - 设计 - 如何显示用户的帖子

转载 作者:太空宇宙 更新时间:2023-11-03 17:23:00 25 4
gpt4 key购买 nike

我使用 Devise gem 进行身份验证。

在数据库中,我的数据库模式(和 Post Controller )中有 users 表和 posts 表。在帖子 Controller 中,我想找到分配给特定用户的所有帖子。我在帖子表中有 user_id。

如何获取所有用户的帖子或如何检查特定帖子是否分配给登录用户。

我想过这样的事情(当然只是伪代码:

current_user.id == Post.where(params:[post_id]).user_id

那么如何在Devise中获取当前用户id以及如何检查当前用户id与eg相同。分配给查看帖子的 user_id(我想在当前用户是帖子所有者时添加“编辑”功能)以及如何查找当前用户是所有者的所有帖子。

最佳答案

协会

首先,您的posts 表中的user_id 列就是所谓的foreign_key

外键用于关系数据库系统,使您能够从单个记录调用关联数据。简单地说,这意味着您将能够使用 ActiveRecord associations调用您需要的数据,而不必单独调用它:

#app/models/user.rb
class User < ActiveRecord::Base
has_many :posts
end

#app/models/post.rb
class Post < ActiveRecord::Base
belongs_to :user
end

这将使您能够使用以下调用:

#app/controllers/posts_controller.rb
class PostsController < ApplicationController
def index
@posts = current_user.posts
end
end

您最好查找 has_many association :

enter image description here


修复

关于向用户显示您的帖子,您需要确保设置了正确的“流程”。我的意思是你需要一些条件来知道你的用户是否登录以及是否设置了 @posts:

#app/views/posts/index.html.erb
<% if @posts.present? %>
<% @posts.each do |post| %>
<%= post.title %>
<% end %>
<% end %>

关于ruby-on-rails - 设计 - 如何显示用户的帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25831594/

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