Specs for AdminCensorRuleController#create

Note that these specs describe what the system does – not what it
_should_ do!
Specs for AdminCensorRuleController#update

Note that these specs describe what the system does – not what it
_should_ do!
Initialize a new CensorRule in #new
Associate censor rule with something in #new

Build the CensorRule against the object that is found by an additional
parameter (either :info_request_id or :user_id)
Add extra censor rule routes

Adds specific routes for creating censor rules associated with an info
request or user.

Creates:

POST  /admin/info_requests/:info_request_id/censor_rules(.:format)
GET   /admin/info_requests/:info_request_id/censor_rules/new(.:format)
POST  /admin/users/:user_id/censor_rules(.:format)
GET   /admin/users/:user_id/censor_rules/new(.:format)

Using these routes prevents the ID of the association object being lost
when re-rendering the form on an unsuccessful persistence attempt.
Set the form URL to POST to in #new

Direct the form at the correct route for the association (or use the
generic route if the rule is being created for some other reason)
Associate censor rule with something in #create

Build the CensorRule against the object that is found by an additional
parameter (either :info_request_id or :user_id)
Set the form URL to POST to in #create

Direct the (re-rendered) form at the correct route for the association
(or use the generic route if the rule is being created for some other
reason)
Tidy AdminCensorRuleController#update

- Add linebreaks to break up sections
- Remove unused parentheses
- Use unless instead of if !
Use new routes for creating censor rules

- Use resource-oriented form style, building against the censor rule
  instance created in the controller
- Use the URL assigned by the controller based on what the censor rule
  is being created against
- Use the new route for the buttons directing the admin to the form
- Use consistent styling for button labelling
- Use each instead of for
Use instance variable for CensorRule in #destroy

Easier to check against the assigned variable, but the spec still fails
because an internal error is raised if the rule is not associated with
a User or InfoRequest