Вы должны поместить его в готовый блок документа (dom) или переместить #important p перед js.В настоящий момент js запускается до того, как узнает о #important p, поэтому ничего не происходит.Если он находится в блоке, готовом к документу, то порядок не важен, так как вся страница будет загружена до запуска js.Кроме того, похоже, что fade ничего не делает.Попробуйте: выделите вместо.
В прототипе вы делаете готовый блок dom следующим образом:
<script type="text/javascript">
document.observe('dom:loaded', function() {
<%= visual_effect(:fade, "important", :duration => 1.5) %>
});
</script>