如何解决Rails模型:这个对象来自哪里?
以下代码:
class Product < ApplicationRecord
validates :name,presence: true
validates :price,numericality: {
greater_than_or_equal_to: 0.0
}
validates :description,presence: true
belongs_to :user
def owned_by? owner
user == owner # Where does the user-obj. come from?
end
end
有效。我不明白的是:“用户”对象来自哪里?请查看带有注释的行!
“用户”在任何地方都没有声明/没有赋值。
有人知道它是如何工作的,它可以向我解释吗?
解决方法
从ActiveRecord::Associations::ClassMethods#belongs_to
API文档开始:
将添加用于检索和查询单个关联的方法 对象,该对象为其保留一个ID:
association
是作为名称传递的符号的占位符 参数,因此belongs_to:author会加上author.nil?。示例
一个Post类声明Emirates_to:author,它将添加:
Post#author (similar to Author.find(author_id)) ...
因此,在您的情况下,声明了belongs_to :user
关系之后,您将获得一堆方法,其中包括user
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。