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_idcomments

我该如何解决。

4

2 回答 2

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 回答
0

我怀疑你这里有两个问题。

首先,我认为user_id,post_id并且comments可能由于批量分配保护而没有设置。如果您使用的是 Rails 4,则需要研究 Strong Parameters,如果您使用的是 Rails 3,则需要调查attr_accessible.

该错误与您返回的 JSON 格式有关。您需要确保 JSON 返回的主键是comment(单数),而不是comments(复数)。

{ "comment" : {...} }

不是 :

{ "comments" : {...} }
于 2013-10-12T01:35:22.650 回答