0

我目前有三个模型,用户、属性、租户。当我创建一个属性时,user_id 通过关联传递给该属性:

class User
  has_many :properties
end

class Property
  belongs_to :user
  has_many :tenants
end

class Tenant
  belongs_to :property
end

我在尝试将 property_id 传递给租户时遇到了问题。我尝试了几种关联组合,但似乎没有任何效果。

我的租户数据库有一个 property_id 列,我可以手动向它添加一个 property_id,一切正常。但是我想做的是从一个属性中单击“新租户”,然后该租户与该属性相关联,但它没有发生。

我什至尝试通过以下方式将 property_id 传递到租户表单中的隐藏字段:

<%= render :partial => 'shared/new_tenant', :locals => { :tenant => Tenant.new(:property_id => @property.id) } %>

但这也没有奏效。

任何建议都会挽救我剩下的理智。

谢谢,托尼。

4

1 回答 1

0

在模型中添加belongs_to,has_many等不足以在数据库中创建关系。他们所做的是通过查看*_id数据库中已经存在的字段来告诉 Rails 要建立哪些关联。

您需要确保您的租户表上有一个property_id类型。Integer如果您没有,您可以通过生成迁移来添加它:

rails g migration add_property_id_to_tenants property_id:integer

然后运行rake db:migrate(如果其他模型也缺少这些列,则类似)

于 2012-11-14T00:16:59.360 回答