[ad_1]
Good afternoon people. I’m new to Rails and I’m using google translate to post here in English.
My question is not an error, it is for understanding. As I’m new to Rails, I can’t read all the code yet.
I would like to understand 2 points in this class that is in “Services”:
class SaveUserCnaeClassifications
def initialize(user, cnae_classifications)
@user = user
@cnae_classifications = cnae_classifications
@user_cnae_classifications = user.cnae_classifications.map(&:id)
end
def call
return if @cnae_classifications.nil?
array_delete = @user_cnae_classifications.difference(@cnae_classifications)
delete(array_delete)
array_add = @cnae_classifications.difference(@user_cnae_classifications)
add(array_add)
end
private
def add(cnae_classifications_ids)
cnae_classifications_ids.each do |id|
UserCnaeClassification.create(
user: @user,
cnae_classification_id: id
)
end
end
def delete(cnae_classifications_ids)
cnae_classifications_ids.each do |id|
UserCnaeClassification.where(user: @user, cnae_classification_id: id)
.first
.destroy
end
end
end
1 – what does “(&:id) do after .map
what is the difference of .map with it and without it?
2 – in the method:
def add(cnae_classifications_ids)
cnae_classifications_ids.each do |id|
UserCnaeClassification.create(
user: @user,
cnae_classification_id: id
)
end
end
How do I read that part of the code…
user: @user,
cnae_classification_id: id
are they keys and values?
Thank you for your attention and I apologize for the basic questions.
[ad_2]