这是我在模板中的表单
<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_id
和comments
。
我该如何解决呢?
答案 0 :(得分:0)
我怀疑你在这里有两个问题。
首先,我认为由于质量分配保护,user_id
,post_id
和comments
可能未设置。如果您使用的是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])