ruby-on-rails - Rails 模型属于属于模型的模型,但我想使用另一个名称

标签 ruby-on-rails ruby model

这可能是一个愚蠢的问题,但我刚刚开始学习 Rail,这就是我问这个问题的原因。

我有一个名为“User”的模型,它可以处理社区中的所有用户。现在我想为每个用户添加留言簿。所以我创建了一个名为“user_guestbook”的模型并将其插入到新模型中:

belongs_to :user

并将其放入用户模型中:

has_one :user_guestbook, :as => :guestbook

我做的下一件事是添加一个新模型来处理留言簿内的帖子。我将其命名为“guestbook_posts”并将以下代码添加到新模型中:

belongs_to :user_guestbook

并将其放入 user_guestbook 模型中:

has_many :guestbook_posts, :as => :posts

我想要实现的是能够通过以下方式获取特定用户的所有帖子:

@user = User.find(1)
puts @user.guestbook.posts

但这对我不起作用。我不知道我做错了什么,如果有更简单的方法,请告诉我。

请注意,我已为其创建了一些迁移,如下所示:

创建用户访客簿:

  t.integer :user_id

创建_guestbook_posts:

  t.integer :guestbook_id
  t.integer :from_user
  t.string :post

提前致谢!

最佳答案

我认为应该是:

#user
has_one :guestbook, :class_name => "UserGuestbook"

#user_guestbook
belongs_to :user
has_many :posts, :class_name => "GuestbookPost"

#guestbook_posts
belongs_to :user_guestbook

要获取属于单个用户的所有帖子,您可以将此行添加到用户的模型

has_many :posts, :through => :guestbook

然后,调用此:

@user.posts

关于ruby-on-rails - Rails 模型属于属于模型的模型,但我想使用另一个名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2648743/

相关文章:

ruby-on-rails - 使用 Rails Ping 服务器

ruby-on-rails - 在 iframe 内的浏览器中显示附加的 pdf - rails

ruby-on-rails - 链接到页面 - Ruby on Rails

ruby - EventMachine、Redis 和 EM HTTP 请求

ruby - 在 URL 的一部分中使用 "/"的干净方法是什么

c++ - QListView默认选择模型的所有权

ruby-on-rails - 测试 Rails 应用程序的移动 View

ruby-on-rails - Rails3 CMS舒适墨西哥沙发与omniauth路由不匹配

database - LARAVEL 5.5 - 使用 Eloquent 模型将数据从 FORM 插入数据库

java - LWJGL 加载的 OBJ 模型有一个没有纹理的黑色区域