0

レジストリ間には多対1の関係があります...

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

外部キーはユーザーレジストリにあるため、has_one関係の代わりに、belongs_toが必要でした。

class UserRegistry < ActiveRecord::Base
    belongs_to :page
    belongs_to :registry
    attr_accessible :page_id, :registry_id, :url
end
于 2013-01-30T22:42:01.967 に答える