我有两个通过 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
关于ruby-on-rails - 如何在 Rails 中访问父模型的实例变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4129685/