Я не знаю, как изменить отображаемые поля без использования JavaScript.
То, что вы можете сделать, это всегда отображать поля города и штата, но требовать их только в том случае, если в меню выбора установлено значение C. Например, определите правило проверки, которое требует поля, если в меню выбора установлено значениеC. В вашей директории lib / введите require_if_c_validator.rb
class RequireIfCValidator < ActiveModel::EachValidator
def validate_each object, attribute, value
if object.your_attribute_name == 'C' && value == nil
object.errors[attribute] < 'is required'
end
end
end
А затем в вашей модели назовите его по городу и штату:
validate :city, :require_if_c => true
validate :state, :require_if_c => true