2015-11-20T14:30:00+10:00 means that the local time of 14:30 is 10 hours ahead of UTC.  Your database field reflects the correct UTC value of 04:30.  This is often the desired behavior, especially if the value represent a timestamp - the date and time something occured (past tense).
In PostgreSQL, there are two different types of timestamp fields (reference)
- The - TIMESTAMP WITH TIME ZONEfield accepts an input that contains a time zone offset.  It then converts the value to UTC for storage.  On retrieval, it uses the session's- timezonesetting.
 
- The - TIMESTAMP, or- TIMESTAMP WITHOUT TIME ZONEsimply stores the date and time given, ignoring any offset, and not converting to UTC.
 
Most of the time, you should indeed use TIMESTAMP WITH TIME ZONE.  You should only use TIMESTAMP WITHOUT TIME ZONE if you need to retain the local date and time value, such as in scheduling of future events and calculation of business hours.  And for those scenarios, it often makes more sense to split date and time into separate DATE and TIME fields.
One last thing - if you can avoid it, avoid using Rails time zones and use standard tzdb zones.  "Australia/Brisbane" is the full tzdb identifier equivalent to the Rails "Brisbane" time zone.  Refer to the section on Rails time zones at the bottom of the timezone tag wiki.