Force absolute URLs in views throughout a response
This is more tricky than it should be because url_for, asset_path, etc. all rely on different mechanisms.
Anyway, you can use the attached trait like this:
class ExampleController < ApplicationController
does 'host_enforcement', :for => 'some_action'
end
Short explanation:
-
asset_hostis used for links to stylesheets and javascripts -
asset_hostbelongs toActionController::Base-- changes are persistent and will not be reset after a request -
rewrite_optionsis used by the..._pathmethods in the views
^...
Unobtrusive JavaScript and AJAX
Attached (see below) is some code to allow using unobtrusive JavaScript on pages fetched with an AJAX call.
After you included it, you now do not use the usual
$(function() {
$('.some_tag').activateStuff();
});
any more, but instead you write
$.unobtrusive(function() {
$(this).find('.some_tag').activateStuff();
});
that is
-
$.unobtrusive()instead of$() - don't do stuff to the whole page, but just to elements nested below
$(this)
Normal pages work as before (your $.unobtrusive functions are ca...