protective protects active records from being destroyed in a declarative way: < protect_if :attachments, "Record has attachments and cannot be destroyed" > . Of course, you may pass the name of any defined method. If its result evaluates to present?, the record is not going to be destroyed. No exception is thrown, but a message is added to the errors object of your model. This may then be used further on.
render_inheritable is a Rails 3 plugin that allows one to inherit or override single templates for controller hierarchies. With this gem, a template is searched in the current controller's view folder (as usual). If it is not found there, the template with the same name in the view folder of the superclass controller is used. Finally, views and partials remain DRY.