Как заставить эту индивидуальную работу работать? - PullRequest
0 голосов
/ 14 октября 2011

Я установил непосредственную связь между моими моделями администратора и отчета, и она пока не работает. Я использую Devise для входа через модель администратора, поэтому в контроллере я использую хелпер current_admin. Глупый вопрос, но какую миграцию мне нужно запустить, чтобы это работало?

Error

ActiveRecord::StatementInvalid (PGError: ERROR:  column reports.admin_id does not exist
2011-10-14T09:16:57+00:00 app[web.1]: LINE 1: SELECT  "reports".* FROM "reports" WHERE ("reports".admin_id = ...

Модель отчета

belongs_to :admin, :foreign_key => "admin_id"

Модель администратора

has_one :report, :foreign_key => "admin_id" 

Контроллер

@report = current_admin.report

Схема

create_table "reports", :force => true do |t|
  t.string   "name"
  t.string   "description"
  t.datetime "created_at"
  t.datetime "updated_at"
  t.string   "user_id"
end

create_table "admins", :force => true do |t|
  t.string   "email",                                 :default => "", :null => false
  t.string   "encrypted_password",     :limit => 128, :default => "", :null => false
  t.string   "reset_password_token"
  t.datetime "reset_password_sent_at"
  t.datetime "remember_created_at"
  t.integer  "sign_in_count",                         :default => 0
  t.datetime "current_sign_in_at"
  t.datetime "last_sign_in_at"
  t.string   "current_sign_in_ip"
  t.string   "last_sign_in_ip"
  t.datetime "created_at"
  t.datetime "updated_at"
end

1 Ответ

0 голосов
/ 14 октября 2011

Вам нужно admin_id в reports. Вы можете удалить foreign_key в ваших моделях. Это делается автоматически. Создайте миграцию, добавьте

add_column :reports, :admin_id, :integer

Запустите rake db:migrate и все готово.

...