我是 Rails 的新手和一名英語學生,我正在使用谷歌翻譯在這里發帖。
我想知道如何保存 CNAES 陣列以及我是否使用了正確的關系:
這是銀行:

models - relationships:
class User < ApplicationRecord
has_many :user_cnae_classifications
has_many :cnae_classifications, through: :user_cnae_classifications
end
class CnaeClassification < ApplicationRecord
belongs_to :user
belongs_to :cnae_classification
has_many :user_cnae_classifications
has_many :users, through: :user_cnae_classifications
end
我的 users_controller 呼叫該服務:
def create
@user = User.new(user_params)
if @user.save
SaveUserCnaeClassifications.new(@user, user_cnae_classifications_param).call
render json: @user, status: 200
else
render json: {errors: @user.errors}, status: 422
end
end
private
def user_cnae_classifications_param
param = params.require(:user).permit(
cnae_classifications: []
)
param[:cnae_classifications]
end
這是我無法保存的服務 - 正在建設中
class SaveUserCnaeClassifications
def initialize(user, cnae_classifications)
@user = user
@cnae_classifications = cnae_classifications
end
def call
return if @cnae_classifications.nil?
user.cnae_classifications != cnae_classifications
end
private
end
我的關系正確嗎?如何在我的服務中保存 CNAES 陣列?CNAE = 公司在巴西提供的服務型別的識別號。
一個用戶可能有多個 CNAE,并且可以根據需要更新 CNAES。
任何相關研究的網站/博客/提示都會有很大幫助。謝謝
uj5u.com熱心網友回復:
您可以使用accepts_nested_attributes
例子:
class User < ApplicationRecord
has_many :user_cnae_classifications
has_many :cnae_classifications, through: :user_cnae_classifications
accepts_nested_attributes_for :cnae_classifications
end
你不需要類SaveUserCnaeClassifications。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/460269.html
