微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Rails模型:这个对象来自哪里?

如何解决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 举报,一经查实,本站将立刻删除。