我在注册管理机构之间有多对一的关系......
class Registry < ActiveRecord::Base
has_many :user_registries
attr_accessible :logo, :name
has_attached_file :logo
end
和user_registries ...
class UserRegistry < ActiveRecord::Base
belongs_to :page
has_one :registry
attr_accessible :page_id, :registry_id, :url
end
我试图在表单中显示名称或徽标,如下所示:
.registry
= debug f.object.registry.name
.field
= f.label :title
= f.text_field :title
.field
= f.label :url
= f.text_field :url
.field
= f.hidden_field :_destroy
= link_to_function "remove", "remove_fields(this)"
但我得到一个SQL错误,如下所示:
Mysql2::Error: Unknown column 'registries.user_registry_id' in 'where clause': SELECT `registries`.* FROM `registries` WHERE `registries`.`user_registry_id` = 14 LIMIT 1
我的关系设置不正确吗?
答案 0 :(得分:0)
我真的认为它与关系无关。你能否确保表“registries”中有一个列“user_registry_id”,在你的情况下,我相信它应该被设置为外键。
答案 1 :(得分:0)
我的关系实际上是不正确的。
class UserRegistry < ActiveRecord::Base
belongs_to :page
has_one :registry
attr_accessible :page_id, :registry_id, :url
end
外键在用户注册表中,因此我需要belongs_to而不是has_one关系,而不是这样。
class UserRegistry < ActiveRecord::Base
belongs_to :page
belongs_to :registry
attr_accessible :page_id, :registry_id, :url
end