0

これがテンプレートの私のフォームです

<form>
  {{view Ember.TextArea valueBinding="comments" placeholder="Please type your comment here"}}
  <div class="form-footer">
   <button type="submit" class="btn pull-right btn-primary" tabindex="100" {{action saveIndianize}}>Save</button> 
  </div>
</form>

これが私のjsモデルです

App.Comment = DS.Model.extend({
    post_id: DS.attr('number'),
    user_id: DS.attr('number'),
    comments: DS.attr('string'),
    created_at: DS.attr('date'),
    job: DS.belongsTo('App.Post',{embedded:true}),
});

これは私のシリアライザーです

attributes :id,:post_id,:user_id,:comments,:created_at

これが私のレールコントローラーです

@comment = Comment.new(user_id: params[:user_id],post_id: params[:post_id],comments: params[:comments])

フォームスローエラーを送信すると

Uncaught Error: assertion failed: Your server returned a hash with the key comments but you have no mapping for it

ID(主キー)、created_at、およびupdated_atを使用してデータベースに挿入しています。user_id, post_idしかし、私は見ることができませんでしcommentsた。

どうすれば解決できますか。

4

2 に答える 2

0

ここで 2 つの問題があると思われます。

まず、大量割り当て保護のためuser_idpost_idとが設定されていない可能性が高いと思います。commentsRails 4 を使用している場合は、Strong Parameters を調べる必要があります。Rails 3 を使用している場合は、調査する必要がありますattr_accessible

エラーは、返される JSON 形式に関係しています。commentJSON が (複数)ではなく (単数)のメイン キーを返すことを確認する必要がありますcomments

{ "comment" : {...} }

いいえ :

{ "comments" : {...} }
于 2013-10-12T01:35:22.650 に答える
0

コントローラーの変更が解決しました

@comment = Comment.new(user_id: params[:comments][:user_id],post_id: params[:comments][:post_id],comments: params[:comments][:comments])

于 2013-10-12T10:59:55.783 に答える