0

Towerjsでコントローラーを作成しようとしましたが、アクションの更新中にエラーが発生しました。

TypeError: Property 'id' of object #<Object> is not a function

これが私の行動にどのように見えるか:

update: ->
  App.User.find @params.id (error, user) =>
    user.updateAttributes @params.user, (error) =>
      if error
        @render "edit", locals: user: user
      else
        @render "show", locals: user: user 

コンソールに、idパラメータが渡されたことが表示されます。

Parameters:
{ user: 
  { name: 'admin',
    email: 'example@domain.com',
    password: '21232f297a57a5a743894a0e4a801fc3' },
  id: '4faa6c614b2ce49b34000001',
  action: 'update',
  format: 'html' }

詳細:同じアクションがshow、edit、destroyに組み込まれており、機能しています。すべてのアクションは同じ_formパーシャルを使用します。

4

1 に答える 1

1

このコード:

f @params.id (a, b) => ...

これと同等です:

f(@params.id((a,b) => ...))

したがって、関数として呼び出して、関数をその引数として@params.id渡しようとしています。andを2 つの引数として渡したいと思うので、コンマを追加します。(error,user) =>@params.id@params.id(error,user) =>App.user.find

update: ->
  App.User.find @params.id, (error, user) =>
    #---------------------^
于 2012-05-09T16:08:38.633 に答える