This is the way the regexp matched against here is filled:

<pre>
OpenProject::Acts::Watchable::Routes.add_watched(options[:route_prefix] || self.to_s.underscore.pluralize)
</pre>

So this should at least be rephrased to

<pre>
objects_base_klass.to_s.underscore.pluralize
</pre>

But this would miss classes having specified options[:route_prefix].

As I know no other way it it probably necessary to 

a) define a method in  OpenProject::Acts::Watchable::Routes to get the routes prefix (falling back to to_s.underscore.pluralize) for a provided object
or
b) define a method in an ActsAsWatchable Model to get the routes prefix (again with the fallback)

I am not yet decided what would be better.