ruby-on-rails – Rails:返回参考对象所属的模型

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – Rails:返回参考对象所属的模型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这可能是一个愚蠢的问题,但我似乎无法找到一个好的答案.我想知道引用一个对象所属模型的最佳方法. @H_502_2@例如:

class User < ActiveRecord::Base
  has_many :posts
end

class Post < ActiveRecord::Base
  belongs_to :users
end
@H_502_2@所以,为了获得用户的帖子,我可以使用user.posts,但是为了获得帖子的用户,我不能这样做:post.user

@H_502_2@如果我向Post模型添加用户方法,它可以工作,但它似乎不是最好的方法.

class Post < ActiveRecord::Base
  belongs_to :users

  def user
    User.find(self.user_id)
  end
end
@H_502_2@如果您以http://www.fortytwo.gr/blog/18/9-Essential-Rails-Tips这个博客文章为例,您可以看到作者使用的是post.user.username,它不能用于开箱即用以及:include => [:user],即使使用Post模型中的“user”方法也不起作用.

@H_502_2@我知道这很简陋,所以感谢你的耐心等待.我只是想知道实现这种关系的最佳方法.

@H_502_2@我的主要目标是使用嵌套包含来编写“查找”,它会像这样引用给用户

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

@H_502_2@当我尝试这个时,我得到“ActiveRecord :: ConfigurationError:未找到名为’user’的关联;也许你拼错了它?”

@H_502_2@非常感谢.

解决方法

我对Rails有点新意,但这应该会自动生效…… @H_502_2@啊 – 你已经将Post中的父类命名为belongs_to:users;但由于它只属于一个用户,Rails期待belongs_to:user(当然还有belongs_to:users,:class_name =>“User”).

@H_502_2@那是:

class Post < ActiveRecord::Base
  belongs_to :user
end
@H_502_2@应该做的工作.

原文链接:https://www.f2er.com/ruby/264508.html

猜你在找的Ruby相关文章