Я новичок в рельсах. Так что не знаете, как следовать методу DRY . Давайте углубимся в вопрос.
У меня есть два метода в моем контроллере, где я следовал одному и тому же коду. Так как я могу уменьшить свой код. В этих двух методах только название модели получает разницу. Пожалуйста, помогите мне
Мне нужно что-то вроде этого
array = ['Userservice', 'Userschedule' ]
array.each do |el|
draft_info = el.find_by(user_id: 39, save_option: "publish")
draft_info.delete if !draft_info.nil?
@user_info = el.find_by(user_id: 39, save_option: "draft")
el.create(@user_info.attributes.merge({:save_option => "publish", :id => el.maximum(:id).to_i.next }))
end
def create_publish_user
publish_user_schedule
publish_user_service
end
def publish_user_service
draft_service = Userservice.where(user_id: current_user.id, save_option: "publish").delete_all
user_service = Userservice.where(user_id: current_user.id, save_option: "draft")
user_service.each { |ser|
Userservice.create(ser.attributes.merge({:save_option => "publish", :id => Userservice.maximum(:id).to_i.next }))
}
end
def publish_user_schedule
draft_schedule = Userschedule.where(user_id: current_user.id, save_option: "publish").delete_all
user_schedule = Userschedule.where(user_id: current_user.id, save_option: "draft")
user_schedule.each { |sch|
Userschedule.create(sch.attributes.merge({:save_option => "publish", :id => Userschedule.maximum(:id).to_i.next }))
}
end