我的关联有一个奇怪的SQLException。
我使用迁移创建了一个连接表:
create_join_table :reviews, :posts
因此db posts_reviews
在两种模型中,我都配置了关系:
class Post < ActiveRecord::Base
has_and_belongs_to_many :reviews
class Review < ActiveRecord::Base
has_and_belongs_to_many :posts
但是当我运行此命令时Post.find(X).reviews << Review.find(Y)
结果是:
SQLite3::SQLException: no such table: : INSERT INTO "" ("post_id", "review_id") VALUES (?, ?)
因此连接表名称为空。
我的schema.rb
create_table "posts", force: true do |t|
t.integer "user_id"
t.string "post_title", limit: 1024
t.text "post_body"
t.boolean "promo_material", default: false
t.integer "views_count", default: 0
t.integer "comments_count", default: 0
t.integer "votes_count", default: 0
t.datetime "created_at"
t.datetime "updated_at"
t.string "main_image"
end
create_table "posts_reviews", id: false, force: true do |t|
t.integer "review_id", null: false
t.integer "post_id", null: false
end
create_table "reviews", force: true do |t|
t.integer "user_id"
t.integer "composition_id"
t.text "review_text"
t.boolean "promo_material", default: false
t.integer "rating", default: 0
t.integer "views_count", default: 0
t.integer "comments_count", default: 0
t.integer "votes_count", default: 0
t.datetime "created_at"
t.datetime "updated_at"
t.string "promo_image"
end