У меня есть простая пользовательская таблица, и я бы хотел добавить новое поле в свою пользовательскую таблицу, в которой говорится о permalink. Эта постоянная ссылка будет обновлена со следующим кодом для всех пользователей: name.downcase.gsub(/[^0-9a-z]+/, ' ').strip.gsub(' ', '-')
. Я хочу создать файл миграции, который обновляет все поля permalink пользователей с указанным выше кодом, чтобы старые пользователи установили свою постоянную ссылку и я буду использовать метод after_create для новых пользователей.Обновление базы данных с помощью файла миграции
0
A
ответ
0
Я думаю, что вы могли бы попробовать что-то вроде этого:
class User < ActiveRecord::Base
before_create :set_permalink
def set_permalink
permalink = name.downcase.gsub(/[^0-9a-z]+/, ' ').strip.gsub(' ', '-')
end
end
Это фактически использует before_create
функцию обратного вызова, которая будет заниматься решением вытекающего из permalink
полей для новых пользователей. Я думаю, что это то, что вам действительно нужно.
И в файле миграции ...
class UpdateUsersPermalink < ActiveRecord::Migration
def self.up
User.reset_column_information
User.all.each do |u|
if u.permalink.nil?
u.set_permalink
u.save!
end
end
end
...
end
.. который будет заботиться о любых существующих User
с, которые не имеют в этом поле установить только пока.
Смежные вопросы
- 1. Обновление базы данных с помощью пространства имен для миграции
- 2. Обновление данных базы данных внутри миграции Rails
- 3. .NET - Включение миграции и обновление базы данных
- 4. Обновление базы данных до конфигурации миграции
- 5. Обновление моей gitlab, сбой миграции базы данных
- 6. Слайд миграции базы данных
- 7. Обновление базы данных MySQL с помощью AJAX
- 8. Обновление базы данных Azure с помощью C#
- 9. Обновление базы данных с помощью апплетов
- 10. Обновление базы данных с новыми значениями после миграции
- 11. Обновление таблицы базы данных с помощью загрузки файла CSV
- 12. обновление базы данных с помощью загруженного файла Django
- 13. Обновление базы данных SQL с помощью .gz-файла
- 14. Обновление базы данных MySQL с помощью ajax
- 15. Создание хранимой процедуры во время миграции Обновление базы данных
- 16. Ошибка миграции базы данных
- 17. Обновление структуры Entity Framework Модели EDMX после миграции базы данных
- 18. vb.net | Обновление базы данных с помощью OleDB
- 19. Обновление базы данных с помощью PHP
- 20. Обновление базы данных SQL с помощью VB.NET
- 21. Обновление базы данных с помощью списка
- 22. Обновление базы данных с помощью вложенных циклов?
- 23. Обновление базы данных SQL с помощью PHP
- 24. Обновление базы данных SQL с помощью PHP
- 25. Обновление базы данных sql с помощью php
- 26. Обновление базы данных с помощью JPA
- 27. Обновление базы данных с помощью php
- 28. Обновление базы данных Django с помощью javascript
- 29. Обновление базы данных с помощью Laravel
- 30. Обновление базы данных с помощью ajax/jQuery
спасибо, я бы попробовал прямо сейчас – Uchenna
Мне нравится постоянная ссылка для пользователей, которые будут обновляться с именами пользователей так же, как этот 'def set_permalink self.permalink = name.downcase.gsub (/ [^ 0-9a -z] + /, '') .strip.gsub ('', '-') end' это возможно с помощью метода after create, поэтому я хочу переместить его в миграцию, потому что это будет новое обновление, и поэтому что все пользователи могут иметь постоянную ссылку не только новых пользователей – Uchenna
@UchennaOkafor спасибо за разъяснение, я обновил решение выше. Посмотрите и посмотрите, соответствует ли это вашим потребностям. – buruzaemon