我遇到了關聯模型的問題。對於我的用戶,我有一個嵌套的屬性給審閱者。用戶可以基本上審查另一個人,從而成爲審閱者,併成爲審閱人。AssociationTypeMismatch嵌套屬性
它的設置是這樣的:
# User
has_many :reviewers
accepts_nested_attributes_for :reviewers
has_many :active_managements, class_name: 'Reviewer',
foreign_key: 'reviewer_id',
dependent: :destroy
class Reviewer < ActiveRecord::Base
belongs_to :user
belongs_to :reviewer_id, class_name: 'User'
end
現在
在我的用戶控制我有:
class UsersController < ApplicationController
def edit
@user = User.find(params[:id])
@user.reviewers.build
redirect_to root_url && return unless @user.activated?
end
def update
@user = User.find(params[:id])
if @user.update_attributes(user_params)
redirect_to edit_user_path(@user)
else
render 'edit'
end
end
private
def user_params
params.require(:user).permit(:invitation_token, :first_name, :admin,
:last_name, :title, :email, :password,
reviewers_attributes: [:reviewer_id])
end
我得到的錯誤是:
User(#70197180889680) expected, got String(#70197172430700)
發生在「user_params 「,所以我認爲這與我的屬性有關。任何人都知道發生了什麼事?
我看到的是松鼠的第一件事是,你的評論有reviewer_id而不是一個ID,而且它屬於該reviewer_id。看起來Reviewer應該屬於:user。 – jjk