1

假设我有一个带有两个模型PersonHouse. 每个Person对象都有一个House_id属性。

我想在我的Person模型中定义以下方法:

def locate_house
  current_house_id = house.find_by_id(person)
end

但是我收到一个未定义的变量错误house,我如何确保这在范围内?

4

3 回答 3

2

您正在尝试重写已经内置在 rails 中的内容。使用 belongs_to 关系:

class Person < ActiveRecord::Base
    belongs_to :house
end

然后你可以这样做:

person.house

得到相关的房子。

于 2012-04-17T00:12:19.533 回答
1

你的模型House————是一个需要大写的红宝石常数

def locate_house
  current_house_id = House.find_by_id(person)
end
于 2012-04-17T00:12:48.413 回答
0

House 是一个常量,需要像其他人所说的那样使用大写字母,请查看 Rails Guides 关于 Active Record 模型之间的关系。有很多可能的关系,有很多可能是您正在寻找的。因为,实际上,一个人可以拥有多个房屋。

于 2012-04-17T00:39:36.290 回答