0

我在注册表之间有多对一的关系......

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

我的关系没有正确建立吗?

4

2 回答 2

0

我真的不认为这与关系有任何关系。您能否确保在“registries”表中有一个“user_registry_id”列,并且在您的情况下,我相信它应该被设置为外键。

于 2013-01-29T22:52:19.203 回答
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
于 2013-01-30T22:42:01.967 回答