我目前有三种型号,用户,财产,租户。当我创建一个属性时,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传递给租户时遇到了问题。我尝试了几种关联组合,但似乎没有任何效果。
我的租户db有一个property_id列,我可以手动添加一个property_id,一切正常。但我想要做的是点击一个房产内的“新租户”,然后租户与该房产相关联,但它没有发生。
我甚至尝试通过以下方式将property_id传递到租户表单中的隐藏字段:
<%= render :partial => 'shared/new_tenant', :locals => { :tenant => Tenant.new(:property_id => @property.id) } %>
但这也没有用。
任何建议都会挽救我的理智。
谢谢, 贝。
答案 0 :(得分:0)
在模型中添加belongs_to
,has_many
等不足以在数据库中创建关系。他们所做的是通过查看数据库中已有的*_id
字段来告诉Rails要建立哪些关联。
您需要确保租户表中的property_id
类型为Integer
。如果您没有,可以通过生成迁移来添加它:
rails g migration add_property_id_to_tenants property_id:integer
然后运行rake db:migrate
(如果他们也缺少这些列,则类似于其他模型)