Форум программистов, компьютерный форум, киберфорум
Ruby
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 21.08.2014
Сообщений: 30

Ruby on Rails merging data in Mongoid

15.09.2014, 20:43. Показов 983. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер всем! Уменя такой вопрос как сделать что бы перед сохранением данных Mongoid проверяла или такие данные в базе данных уже есть если есть то что бы база данных соединяля имеющиеся данные с новыми (merge). Но если новые данные и уже существующие данные на 100% однинаковые тогда тогда база данных догда база данных должна оставлять только одну копию.

Rails
1
2
3
4
5
6
7
8
9
10
11
12
@all_models = Model.all 
data_to_database.each do |line|
    keys_for_database = line["My_Key"]
    
if @all_models.(keys_for_database => line).exists?
    
 Вот здесь я не знаю как сделать что бы Mongoid делала merge {keys_for_database => line}.merge with existing {keys_for_database => line}
 
else
    Model.create!(keys_for_database => line)
end
end
Пожалуйста кто знает подскажите как правильно это сделать! Благодарю за помощь!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.09.2014, 20:43
Ответы с готовыми решениями:

Ruby on Rails Paperclip Mongoid file download
Добрый день! Кто может покажите пример кода Ruby on Rails как download file с базы данных Mongoid с использованием *Paperclip. Мой код...

Чтобы писать на Ruby on Rails - нужно учить Ruby потом Rails?
Чтобы выучить Ruby on Rails - нужно учить Ruby потом Rails?

чтобы выучить Ruby on Rails, надо перед этим учить сам Ruby?
чтобы учить Ruby on Rails, надо перед этим учить сам Ruby?

8
 Аватар для MpaKus
227 / 225 / 23
Регистрация: 30.01.2013
Сообщений: 720
16.09.2014, 09:47
Алгоритм простой, перед вставкой делать проверку есть ли такие данные в базе (извлекать по условиям), если нет то вставлять, если есть пропускать шаг.
0
0 / 0 / 0
Регистрация: 21.08.2014
Сообщений: 30
16.09.2014, 13:28  [ТС]
Спасибо за ответ, но уменя такой код для этого и не как не могу сделать что бы от работал, выдает ошибку
Rails
1
2
3
4
5
6
7
8
9
10
11
12
all_models = Model.all 
data_to_database.each do |line|
    keys_for_database = line["My_Key"]
 
if @all_models.find(keys_for_database => line).include?(line)
 
 @all_models.find(keys_for_database => line).merge!(line)
 
else
    Model.create!(keys_for_database => line)
end
end
Что нужно поменять что бы он работал?
0
 Аватар для MpaKus
227 / 225 / 23
Регистрация: 30.01.2013
Сообщений: 720
16.09.2014, 13:36
в коде
all_models и @all_models - это вообще разные методы если что
0
0 / 0 / 0
Регистрация: 21.08.2014
Сообщений: 30
16.09.2014, 13:53  [ТС]
Да это я знаю, как сделать что бы это работало?

Rails
1
2
3
4
5
6
7
8
9
10
11
12
@all_models = Model.all 
data_to_database.each do |line|
    keys_for_database = line["My_Key"]
    
if @all_models.find(keys_for_database => line).include?(line)
    
 @all_models.find(keys_for_database => line).merge!(line)
 
else
    Model.create!(keys_for_database => line)
end
end
0
 Аватар для MpaKus
227 / 225 / 23
Регистрация: 30.01.2013
Сообщений: 720
16.09.2014, 13:55
искать не всю линию, а доставать запись по ключу и сравнивать нужные поля.
1
0 / 0 / 0
Регистрация: 21.08.2014
Сообщений: 30
16.09.2014, 14:08  [ТС]
А какой правильный синтакс для этого, потому что что бы я не делал, что бы ни искал там, этот код
Rails
1
if @all_models.find(keys_for_database).include?(x)
выдает ошибку
Rails
1
undefined method `find' for nil:NilClass
0
 Аватар для MpaKus
227 / 225 / 23
Регистрация: 30.01.2013
Сообщений: 720
16.09.2014, 14:13
да, все правильно пишет, потому как @all_models == nil - вот это и надо проверить почему, может просто ничего нет или Model.all - это какой-то фэйк, кто так вообще модели называет?
0
0 / 0 / 0
Регистрация: 21.08.2014
Сообщений: 30
16.09.2014, 14:18  [ТС]
Уменя модель по другому называется а это было для примера, но уже вроде заработало. Спасибо за помощь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.09.2014, 14:18
Помогаю со студенческими работами здесь

Хочу полностью удалить ruby и ruby on rails с linux mint(a) и установить с чистого листа
Вес день мучаюсь вот что у у меня получилась, походу я не удалил его полностью и собираюсь снова установить и тут много проблемы

Joomla, RUBY, RUBY on rails, php....
Здравстуйте. Я хотел бы спросить вашего совета. Хочется сделать интернет магазин. Подскажите что лучше использовать? Джумлу или руби (или...

Разработчик Ruby/Ruby on Rails (м. ВДНХ)
В компанию, занимающуюся разработкой и реализацией рекламных интернет-кампаний для разработки нового высоконагруженного интернет проекта...

Программист на Ruby, Ruby on Rails
Коллеги, добрый день. В настоящее время ищем для себя программиста на Ruby, Ruby on Rails. Обязанности: • Доработка...

Литература по Ruby и Ruby-on-Rails
Здравствуйте! Посоветуйте хороший самоучитель по Ruby для начинающих программистов! Спасибо!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru