Используя Sqlite3 с Rails3, я получаю «ActiveRecord :: StatementInvalid: SQLite3 :: SQLException: нет такого столбца» с ситуацией has_and_belongs_to_many.Из консоли rails, подключенной к Sqlite3, возникают ошибки, когда page.editors или page.admin_users
[[[EDIT: решено из-за опечаток в идентификаторах объединенной таблицы]]]
гемов установлено
rails 3.0.9
sqlite3 1.3.3 x86-mingw32
sqlite3-ruby
(машина win7 64bit dev)
page.rb-> ОК
> class Page
> belongs_to :subject
> has_many :sections
> has_and_belongs_to_many :editors, :class_name => "AdminUser"
> #has_and_belongs_to_many :admin_users
>
> end
admin_users.rb -> ОК
> class AdminUser
> has_and_belongs_to_many :pages
> scope :named, lambda {|first,last| where(:first_name =>
> first, :last_name => last)}
>
> end
файл миграции -> Найдите опечатки!
class CreateAdminUsersPagesJoin false do |t|
t.integer :admin_users_id, :foreign_key => true # Should be admin_user_id
t.integer :page_id, :foreign_key => true
end
add_index :admin_users_pages, [:admin_users_id, :page_id] # Again admin_user_id
end
def self.down
drop_table :admin_users_pages
end
end
ошибки консоли rails
irb(main):004:0> page.admin_users
ActiveRecord::StatementInvalid: SQLite3::SQLException: no such column: admin_users_pages.admin_user_id: SELECT * FROM "admin_users
" INNER JOIN "admin_users_pages" ON "admin_users".id = "admin_users_pages".admin_user_id WHERE ("admin_users_pages".page_id = 2 )
Спасибо Хейкки за сообщения.Я исправил это сам, прежде чем оглянуться сюда только сейчас (да), но я с радостью приму ответ.Отправьте это, и я проверю это, так как это было правильно.Приветствия.