ruby-on-rails - 如何在 Rails 中访问父模型的实例变量?

我有两个通过 has_many/belongs_to 关联的模型。我在子模型中创建了一个类方法。但是我不知道如何从类方法中访问父模型的实例方法。这是我正在尝试做的事情的简化:

#User model
class User < ActiveRecord::Base
    has_many :addresses

    def first_name
        "John"
    end

    def last_name
        "Doe"
    end
end

#Address model
class Address < ActiveRecord::Base
    belongs_to :user

    def self.full_name
        parent.first_name + " " + parent.last_name
        #returns full name of parent "John Doe"
    end
end

我希望能够在 Rails 控制台中运行它并让它返回“John Doe”……但没有成功。有什么建议吗?

@user = User.first
@user.addresses.full_name

最佳答案

@user.addresses.full_name

这会返回一个数组,因此您需要从数组中选择一个对象,假设数组不为空。

@user.address.first.full_name

这有什么用?因为您可以从用户对象中获取全名,并且它不应该根据地址更改:(

class User < ActiveRecord::Base
    has_many :addresses

    def first_name
        "John"
    end

    def last_name
        "Doe"
    end

    def full_name
        self.first_name + " " + self.last_name
    end 
end

现在您可以从@user 对象访问full_name

@user.full_name

https://stackoverflow.com/questions/4129685/

相关文章:

.net - NET 4.0 在 COM+ 中安装程序集加载额外的依赖项

bash - 使用转义序列呈现文本(如终端)

ruby-on-rails - 如何在命名空间内部的 View 中呈现命名空间外部的 Rails 部

.net - 通过 RDP 部署 .NET 应用程序

jpa - JPQL 中的复杂顺序

python-3.x - 如何在 Panel (3D Blender 2.55) 中创建 UI "i

wordpress - 将 Wordpress URL 路径转换为查询字符串

indexing - 如何生成(书籍)索引?

visual-studio-2010 - 如何将 const wchar_t* 转换为 wchar_

image-processing - 合并 povray 的任意大小的部分图像