gpt4 book ai didi

ruby-on-rails - rails : Referring back to model the object belongs to

转载 作者:行者123 更新时间:2023-12-04 06:22:04 24 4
gpt4 key购买 nike

这可能是一个愚蠢的问题,但我似乎找不到一个好的答案。我想知道引用对象所属模型的最佳方法。

例如:

class User < ActiveRecord::Base
has_many :posts
end

class Post < ActiveRecord::Base
belongs_to :users
end

所以,要获取用户的帖子,我可以使用 user.posts,但要获取帖子的用户,我不能反过来:post.user

如果我向 Post 模型添加一个“用户”方法,它会起作用,但它似乎不是最好的方法。
class Post < ActiveRecord::Base
belongs_to :users

def user
User.find(self.user_id)
end
end

如果你看这篇博文 http://www.fortytwo.gr/blog/18/9-Essential-Rails-Tips例如,您可以看到作者使用了 post.user.username,它不能立即使用,而 :include => [:user],即使使用“user "Post 模型中的方法。

我知道这很初级,所以感谢您的耐心等待。我只想知道实现这种关系的最佳方法。

我的主要目标是使用嵌套包含编写“查找”,它像这样引用回用户:

post = Post.find(:all, :include => [:user])

当我尝试这个时,我得到“ActiveRecord::ConfigurationError: Association named ‘user’ was not found; 也许你拼错了?”

非常感谢。

最佳答案

我对 Rails 有点陌生,但这应该会自动工作......

啊 - 您在 Post 中将父类命名为 belongs_to :users ;但因为它只属于单个用户,Rails 期待 belongs_to :user (或者,当然, belongs_to :users, :class_name => "User" )。

那是:

class Post < ActiveRecord::Base
belongs_to :user
end

应该做的工作。

关于ruby-on-rails - rails : Referring back to model the object belongs to,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2014274/

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