0

acts-as-taggable-on драгоценного камня имеет встроенный в однозначности проверки:Добавления возможности для Ruby гема проверки уникальности

validates_uniqueness_of :name, if: :validates_name_uniqueness? 

def validates_name_uniqueness? 
    true 
end 

Как добавить область к этой проверке?

Я хочу добавить scope: :user_id и не знаю, как отредактировать исходный код драгоценного камня.

+0

Вы не можете обезьяну залатать камень, так как это может повлиять как метод работы в различных области вашего кода. – cobaltsoda

+0

'validates_uniqueness_of' - это метод Rails, кстати, вы можете добавить такую ​​область:' validates_uniqueness_of: name, scope:: user_id, if:: validates_name_uniqueness? ' – cobaltsoda

ответ

1

я был в состоянии исправить мою проблему с помощью acts_as_taggable_on.rb файла конфигурации/инициализаторах:

module ActsAsTaggableOn 
    class Tag < ::ActiveRecord::Base 
    Tag.class_eval do 
     _validators.reject!{ |key, _| key == :name } 

     _validate_callbacks.each do |callback| 
     callback.raw_filter.attributes.delete :name if callback.raw_filter.is_a?(ActiveRecord::Validations::UniquenessValidator) 
     end 
     validates_uniqueness_of :name, scope: :user_id 
    end 
    end 
end 

 Смежные вопросы

  • Нет связанных вопросов^_^