Я думаю, вы ищете что-то вроде следующего.В модели:
validate do |instance|
instance.csv_columns.each do |csv_column|
instance.errors.add :csv_columns, "Invalid column name #{csv_column.column_name}"
unless instance.class.column_names.include?(csv_column.column_name)
end
end
Это будет вызвано перед сохранением записи и прервет сохранение, если ошибки будут добавлены в
ОБНОВЛЕНИЕ: с предложением для условных проверок
Добавить атрибут к модели
attr_accessor :some_condtional
Установить это в контроллере
@instance.some_conditional = true # or false
Тогда проверка теперь выглядит так:
validate do |instance|
instance.csv_columns.each do |csv_column|
instance.errors.add :csv_columns, "Invalid column name #{csv_column.column_name}"
unless instance.class.column_names.include?(csv_column.column_name)
end if instance.some_conditional
end
Или что-товдоль этих линий.Другими словами, используйте модель для удержания состояния и передачи логики