【问题标题】:Ember Data does not add parameters to a post requestEmber Data 不会向发布请求添加参数
【发布时间】:2016-02-12 17:05:02
【问题描述】:

我正在尝试使用 ember.js 作为前端在我的 rails 后端创建资源。

router.js我有这个:

 //...
 this.route('posts', function() {
  this.route('new');
 });
//...

这是app/templates/posts/new.hbs

<div>
  <label>Title</label>
   {{input type="text" value=model.title}}
</div>

 <div>
  <label>Body</label>
   {{input type="text" value=model.body}}
</div>

<div>
  <button {{action "save"}}>Save</button>
  <button {{action "cancel"}}>Cancel</button>
</div>

app/routes/posts/new.js 看起来像这样:

import Ember from 'ember';

export default Ember.Route.extend({ 
  model() { 
    return {};
  },

  actions: {
    save() {
      var newPost = this.get('store').createRecord('post', this.currentModel);
      newPost.save().then((post) => {
        this.transitionTo('post', post);
      });
    },

    cancel() {
      this.transitionTo('posts');
    }
  }
});

这是post 型号:

import DS from 'ember-data';

export default DS.Model.extend({
  title: DS.attr('string'),
  body: DS.attr('string'),
  comments: DS.hasMany('comment')
});

当我单击表单上的save 按钮时,我在控制台上收到此错误:

POST http://localhost:4200/posts 400 (Bad Request)

进一步检查rails服务器端的错误,我发现这个错误:

ActionController::ParameterMissing (param is missing or the value is empty: post):

我不知道为什么表单中的参数没有随 POST 请求一起发送,我做错了什么?

【问题讨论】:

    标签: javascript ruby-on-rails ember.js ember-data


    【解决方案1】:

    您将希望在模型钩子中返回一个新的空模型,而不是创建一个新模型并传递道具:

    import Ember from 'ember';
    
    export default Ember.Route.extend({ 
      model() { 
        return this.get('store').createRecord('post', {});
      },
    
      actions: {
        save() {
          this.get('currentModel').save()
          .then(post => this.transitionTo('post', post.get('id'));
        },
    
        cancel() {
          this.transitionTo('posts');
        }
      }
    });
    

    【讨论】:

    • 可以添加post模型吗?
    • 我已经添加了post模型。
    • 你能在ember-twiddle 上重新创建这个问题吗?或者更好地将repo 放在github 上?您发布的代码按顺序排列
    猜你喜欢
    • 1970-01-01
    • 2014-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多