Yes and yes.
Take a look at their demo app: https://github.com/jim/carmen-demo-app/
You need to add the route to fill the states partial, then add the appropiate controller method to render the partial. Don't forget to define the partial route first and then users controller routes.
e.g. (routes.rb)
get '/users/subregion_options' => 'users#subregion_options'
resources :users
e.g. (users_controller.rb)
def subregion_options
render partial: 'subregion_select'
end
You need to add some JS to catch change event on countries select and then with the country code call the users controller method to render the states partial.
e.g. (users.js.coffee)
$ ->
$('select#user_country_code').change (event) ->
select_wrapper = $('#user_state_code_wrapper')
$('select', select_wrapper).attr('disabled', true)
country_code = $(this).val()
url = "/users/subregion_options?parent_region=#{country_code}"
select_wrapper.load(url)
You can handle validation on the user's model class as usual. The sample app includes information on changing locales.