rails 4中的SQLException has_and_belongs_to_many关联

时间:2015-02-18 10:05:42

标签: ruby-on-rails sqlite ruby-on-rails-4 model-associations has-and-belongs-to-many

我的关联有一个奇怪的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

0 个答案:

没有答案