Showing Errors in the Logs

I had some errors occurring in my controller, but it wasn’t displaying in my views.  So I had to figure out how to see what was happening since I didn’t see any messages in the logs that were helpful either.

I found the solution in one of the answers here on Stack Overflow.

By adding this to my controller (it was the creation of a model – @user):

logger.warn("====error==========#{@user.error.full_messages.inspect}============")

This recorded the error in my logs (one of my model validations needed to be changed).

Checking Field Values When Posting in RSpec Controller

I was having trouble figuring out how to check that field values posted in RSpec Controller specs.  In models, I will usually do something like:

@foo.reload.name.should eq “bar”

However, that doesn’t work in Controller specs – it doesn’t recognize reload.

In that case, all you have to do is:

assigns[:foo].name.should eq “bar”