Ben rails_api gem
kullanarak raylar api oluşturma, bir model adını User
ve Identity
adında başka bir model var.Raylar iç içe nitelikler tip mispatch hatası
Karşılıklı Sorunum nested_attributes
ile params kullanıcı oluşturmaya çalıştığında bana verir ActiveRecord::AssociationTypeMismatch error
Modelleri
o User.rb edilir
class User < ActiveRecord::Base
enum gender: [:male , :female]
has_many :identities ,dependent: :destroy
accepts_nested_attributes_for :identities
has_secure_password
end
Identity.rb
class Identity < ActiveRecord::Base
belongs_to :user
validates_associated :user
end
Kontrolörler
users_controller.rb
class UsersController < ApplicationController
def create
@user = User.new user_params
#@user.build.identities(user_params[:identities])
if @user.save
render json: @user , status: :created
else
render json: @user.errors, status: :unprocessable_entity
end
end
private
def user_params
json_params = ActionController::Parameters.new(JSON.parse(request.body.read))
json_params.require(:user).permit(:first_name, :last_name, :email, :password, :image, :location, :gender,{identities: [:provider, :uid, :url, :token, :expires_at]})
end
uç
Ben json nesnesi olarak veriyi gönderiyorum:

Tür bana bu sorunu çözmeye yardımcı:
Bu sunucu konsolda hatadır. Bütün olası çözümleri denedim.
Sanırım bunun nedeni, kimlikleri özniteliğine bir dizi göndermenizdir! Bir Kimlik Kaydı'nı özdeşleştirmek için kimliklere vermelisiniz! –
Sence json_params.require (: kullanıcı) .permit (: first_name,: last_name,: email,: password,: image,: location,: gender, {identities: [: sağlayıcı,: uid,: url ,: token,: expires_at]}) 'json_params.require olmalıdır (: kullanıcı) .permit (: first_name,: last_name,: email,: password,: image,: location,: gender, identities_attributes: [: sağlayıcı, : uid,: url,: jeton,: expires_at]) '? – dp7