ember rails用空字段插入数据

时间:2013-10-11 11:04:54

标签: ember.js ember-data ember-rails

这是我在模板中的表单

<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

这是我的rails控制器

@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

我该如何解决呢?

2 个答案:

答案 0 :(得分:0)

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

首先,我认为由于质量分配保护,user_idpost_idcomments可能未设置。如果您使用的是Rails 4,则需要查看强参数,如果您使用的是Rails 3,则需要调查attr_accessible

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

{ "comment" : {...} }

不是:

{ "comments" : {...} }

答案 1 :(得分:0)

我的控制器中的更改已解决

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