Rails未从模型

时间:2016-04-03 15:36:49

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

我有一个简单的Ember 2.4应用程序。这是相关代码

../模型/ invitation.js

import DS from 'ember-data';

export default DS.Model.extend({
  email: DS.attr('string')
});

../控制器/ index.js

import Ember from 'ember';

export default Ember.Controller.extend({

  emailAddress: '',

  actions: {
    saveInvitation() {
      const email = this.get('emailAddress');

      const newInvitation = this.store.createRecord('invitation', {
        email: email,
      });
      newInvitation.save();
    }
  }
});

当我触发saveInvitation操作时,我的Rails后端不会收到任何参数。正确的操作/控制器接收请求,但唯一的参数是{action: "create", controller: "invitations"}

我错过了什么吗?不应该参数包括电子邮件邀请吗?

2 个答案:

答案 0 :(得分:2)

似乎默认的Ember适配器发送的内容类型application/vdn.api+json不会被Rails自动注册并解析JSON参数。

对此的修复是在rails config

下注册正确的mime类型
api_mime_types = %W(
  application/vnd.api+json
  text/x-json
  application/json
)

Mime::Type.unregister :json
Mime::Type.register 'application/json', :json, api_mime_types 

请参阅https://github.com/rails-api/active_model_serializers/issues/1027

答案 1 :(得分:0)

将以下内容添加到config / initializers / json_adapter.rb

ActiveSupport.on_load(:action_controller) do
 require 'active_model_serializers/register_jsonapi_renderer'
end

这可能会有所帮助