to_json and as_json are not what you are probably looking for.
If you are using a decently up-to-date version of Rails, look at:
https://github.com/josevalim/active_model_serializersThat is what is going to be used in Rails 4.
If you want Hypermedia (links to resources, etc.), HAL support, etc. to be more REST-driven, check out roar-rails, but note that adoption is not that heavy yet:
https://github.com/apotonick/roar-railsPrior to those, a good option was RABL, and it is still a good option for some probably, although I'm not sure what it can do that you'd want over active_model_serializers:
https://github.com/nesquena/rablI spent a good amount of time wrangling with as_json and overriding it on ActiveModel::Base like:
https://github.com/garysweaver/restful_json/blob/a20e835133cacdad4bfc4de8dda9e5e0b895b1bb/lib/restful_json/model.rbAnd to answer your question- methods is a good way of including associations and whatever else you want to define that can be calculated on the model. But, please don't use as_json unless you really need to.
Note: Mass assignment security (attr_accessible/attr_protected) is going away in Rails 4. Also, there is a lot wrong with the implementation that I'd developed that I'm trying to fix now.
Good luck.