Я хотел бы улучшить существующий класс, используя instance_eval. Там оригинальное определение содержит проверки, которые требуют наличия определенных полей, а именно:
class Dummy < ActiveRecord::Base
validates :field, :presence => true
end
Теперь я хочу изменить это на необязательное с помощью instance_eval (или любого другого метода, действительно):
Dummy.instance_eval do
...
end
Какой будет правильный синтаксис для удаления проверки, поэтому поле является необязательным. Я бы предпочел сделать это непосредственно на уровне модели, вместо этого делать странные хаки в контроллерах или представлениях. Использование instance_eval на самом деле не требуется, но, насколько я знаю, это, как правило, лучший способ улучшить классы в Rails.
Редактировать # 1
В целом - оригинальный класс является частью гема, и я не хочу его разветвлять или привязывать к конкретному выпуску. Общая причина не очень важна. Простое редактирование оригинальной модели имеет гораздо худшие последствия, чем исправление обезьян