首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >emberjs断言失败错误

emberjs断言失败错误
EN

Stack Overflow用户
提问于 2013-08-08 20:57:09
回答 2查看 157关注 0票数 0

我试图从ember的视图中插入数据,但收到以下错误消息:

代码语言:javascript
复制
Uncaught Error: assertion failed: Your server returned a hash with the key refunds but you have no mapping for it

这是我的代码,任何人都可以修改它。

我的车把

代码语言:javascript
复制
<form>
   <th>{{view Ember.TextField valueBinding="refund_amount" placeholder="Enter refund amount"}}</th>
   <td><button type="submit" class="btn btn-success complete-btn" {{action saveRefund}}>Refund</button></td>
</form>

我的js模型

代码语言:javascript
复制
Office.Refund = DS.Model.extend({
    job_id: DS.attr('number'),
    customer_id: DS.attr('number'),
    amount: DS.attr('number')
});

我的js控制器

代码语言:javascript
复制
saveRefund: function() {
    var refund = Office.Refund.createRecord({
    job_id: this.get('id'),
    customer_id: this.get('customer.id'),
    amount: this.get('refund_amount')
  });
    this.get('store').commit();
    refund.on('didCreate',function() {
    alert('created successfully');
  });
}

这是我的refund_controller.rb

代码语言:javascript
复制
  def index
    @refund = Thunderbolt::Refund.all
    respond_to do |format|
    format.html # index.html.erb
    format.json { render json: @refund}
    end
  end
def new
    @refund = Refund.new
    respond_to do |format|
      format.html # new.html.erb
      format.json { render json: @refund }
    end
  end

  def create
    refunds = params[:refund]
    @refund = Refund.new(job_id: refunds[:job_id], customer_id: refunds[:customer_id], amount: refunds[:amount])
    respond_to do |format|
      if @refund.save
        format.html { redirect_to @refund, notice: 'Refund successful.' }
        format.json { render json: @refund, status: :created, location: @refund }
      else
        format.html { render action: "new" }
        format.json { render json: @refund.errors, status: :unprocessable_entity }
      end
    end
  end

这是我的refund_serializer.rb

代码语言:javascript
复制
  class RefundSerializer < ActiveModel::Serializer
    attributes :id, :job_id, :customer_id, :amount, :created_at, :updated_at
  end

这是我的refund.rb模型

代码语言:javascript
复制
  class Refund < ActiveRecord::Base
    attr_accessible :id, :amount, :customer_id, :job_id, :created_at, :updated_at
  end
EN

回答 2

Stack Overflow用户

发布于 2013-08-10 22:46:59

通过在routes.rb中添加resources :refunds而不是

代码语言:javascript
复制
  get "refunds/index"

  get "refunds/new"

  get "refunds/edit"

  get "refunds/show"
票数 1
EN

Stack Overflow用户

发布于 2013-08-10 20:18:14

在评论变得冗长之前,我将尝试在答案中解释它。当您发布要保存的新记录时,您的后台应返回新记录并设置id,如下所示:

代码语言:javascript
复制
{
  "refund": {
    "id": 123,
    "job_id":691,
    "customer_id":424,
    "amount":1
  }
}

如果job_id是你的记录的主键,那么你需要在你的DS.RESTAdapter中为它建立一个映射,对吗?

希望能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18126663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档