Rails側はAPIの提供(/api/articles/:id にて、articleの情報とそれに紐づくitemをjson形式でレンダリングしています)に専念させ、Angular側でjsonを受け取りserviceクラスのfactoryメソッドからデータのやりとりをしようとしています。こちらが現状のコードです。Angularのバージョンは1.4.7を採用しています。

《service》

App.factory 'Article', ($resource, $http) ->
  class Article
    constructor: (errorHandler) ->
      @service = $resource('/api/articles/:id',
        { id: '@id' },
        { update: { method: 'PUT' }})
      @errorHandler = errorHandler

    find: (id, successHandler) ->
      @service.get(id: id, ((article)->
        successHandler?(article)
        article),
        @errorHandler)

    create: (attrs) ->
      new @service(article: attrs).$save()

    update: (article, attrs) ->
      new @service(article: attrs).$update {id: article.id}, (-> null), @errorHandler

こちらをcontrollerから呼び出し、createやupdateを呼んでいます。

《controller》

@articleService = new Article(serverErrorHandler)
@articleService.update($scope.article, title: article.title, description: article.description)

こちらをできればもう少しスマートに記述したいです。参考書やウェブの情報によると今回のようなアプリケーションでは、$httpサービスは基本的に用いずに$resourceサービスだけで実装するのが一般的と推奨されており、リファクタリングをしようとしているのですが、Angular内部のエラーに詰まり、うまく移行できません...

Error: [$resource:badcfg] http://errors.angularjs.org/1.4.0/$resource/badcfg?p0=query&p1=array&p2=object&p3=GET&p4=%2Fapi%2Farticles%2F13495

できれば、下記のように(「Rails+JSフレームワークでリアルタイム掲示板を作成してみる(AngularJS編)」を参考にしました)serviceクラスではAPIの受け取りだけに専念させシンプルに記述したいです。この方法がやはり推奨なのか、また、コードに良くない点やエラーの原因が見受けられましたら、どうかアドバイスをいただきたいです。読みにくいコードで申し訳ありませんがどうかよろしくお願いいたします。

《service》

App.factory 'Article', ($resource) ->
  $resource '/api/articles/1'

《controller》

Article.query (article) ->
  $scope.article = articles

$scope.create = ->
  article = Article.save($scope.Article)