【发布时间】:2018-06-12 08:47:31
【问题描述】:
我有两个模型,User 和 Peticion。我希望Peticion 保存两个对两个不同用户的引用,也就是说,两个用户的ID。这是创建 Peticion 模型的迁移
class CreatePeticionExtras < ActiveRecord::Migration[5.1]
def change
create_table :peticion_extras do |t|
t.references :user_solicitante, foreign_key: true
t.references :user_solicitado, foreign_key: true
t.timestamps
end
end
end
Peticion 的模型
class PeticionExtra < ActiveRecord::Base
belongs_to :solicitante, class_name: "User"
belongs_to :solicitado, class_name: "User"
end
和用户的模型
class User < ActiveRecord::Base
has_many :solicitudes, class_name: "PeticionExtra", foreign_key: "user_solicitado_id", dependent: :destroy
has_many :peticiones, class_name: "PeticionExtra", foreign_key: "user_solicitante_id", dependent: :destroy
问题是当我在控制器上调用 Peticion 的 create 时
def create
peticion_extra = PeticionExtra.new(user_solicitante_id: params[:peticionextra][:user_solicitante_id], user_solicitado_id: params[:peticionextra][:user_solicitado_id])
respond_to do |format|
if peticion_extra.save
flash[:success] = "Petición enviada"
format.html {redirect_to ejercicios_path and return}
format.json {redirect_to ejercicios_url and return}
else
format.html {render action: "new"}
format.json {render json: @user.errors, status: :unprocessable_entity}
end
end
end
它抛出一个错误:“SQLite3::SQLException at /peticion_extra/crear
没有这样的表:if peticion_extra.save 行中的 main.user_solicitados"
【问题讨论】:
标签: ruby-on-rails database model foreign-keys