gpt4 book ai didi

ruby-on-rails - rails : Best association model for Users ->posts -> comments model in a forum kinda of website?

转载 作者:行者123 更新时间:2023-12-04 17:58:19 25 4
gpt4 key购买 nike

我正在创建一个论坛网站,每个注册用户都可以在这里写很多帖子和
每个帖子可以有很多评论。
此外,每个用户都可以评论任何其他用户创建的任何帖子。

      has_many              has_many
user ------------> Posts -------------- > Comments
| ^
| |
| has_many |
|-------------------------------------------
belongs_to
Post ------------> User
^ ^
| |
| |
belongs_to belongs_to
| |
| |
Comments-------------

我无法使用“post.comment.user”获取评论的用户详细信息或
commenter_email = comments.user.email
如何实现这一目标?
粘贴我的模型以供引用:-
class Comment < ActiveRecord::Base  
belongs_to :post
belongs_to :user
end
class Post < ActiveRecord::Base
has_many :comments, :dependent => :destroy
end
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
attr_accessible :email, :password, :password_confirmation, :remember_me
has_many :posts
has_many :comments
end

这是我的架构:-
create_table "comments", :force => true do |t|  
t.integer "post_id"
t.integer "user_id"
t.text "comment_text"
t.datetime "created_at"
t.datetime "updated_at"
end

create_table "posts", :force => true do |t|
t.integer "user_id"
t.integer "sell_or_buy"
t.string "title"
t.text "body"
t.datetime "created_at"
t.datetime "updated_at"
end

create_table "users", :force => true do |t|
t.string "email",
t.string "encrypted_password",
t.datetime "created_at"
t.datetime "updated_at"
end

我正在使用 Rails 3.0.1。
请提出你的想法。

最佳答案

由于你的帖子有很多评论,所以是post.comments而不是 post.comment
comments是评论列表,comments.user也无效。

您将需要评论的 id,以便您可以找到特定评论的用户:

post.comments.find(params[:id]).user

当然,您也可以获取所有用户:
post.comments.all.collect(&:user)

关于ruby-on-rails - rails : Best association model for Users ->posts -> comments model in a forum kinda of website?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4011713/

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