Возможно, это неправильно, потому что вы пытаетесь использовать responseds_to_parent в блоке response_to.
Я не знаю, сможете ли вы их смешать. Предлагаю попробовать без блока response_to.
Чтобы правильно отвечать на типы запросов, вы можете сделать, как
if request.xhr?
responds_to_parent do
render :update do |page|
page.replace_html 'errorLay', :text => "Page with the same name already exists."
page.show 'errorLay'
page.delay(2) do
page.hide 'errorLay'
end
end
end
end
Таким образом, отвечает только js, когда был вызов ajax.
Но я предлагаю использовать файл RJS вместо рендеринга с контроллера.