Ember 数据无法通过 createRecord 正确地将参数传递给 Rails

Ember Data unable to pass params to Rails properly via createRecord

我正在尝试设置一个 Ember 数据调用来创建一个注册对象,它只包含一封电子邮件,仅此而已。我的 Ember 数据设置有些奇怪,因为参数似乎已传递但 Rails 无法接收它们。不知道怎么回事。

Ember 前端:

  var signup = this.get('store').createRecord('signup', {
    email: this.get('emailAddress')
  });
  console.log(this.get('emailAddress')); --> prints fine
  console.log(signup); --> data is empty, somewhat alarming/confusing
  console.log(signup.get('email')); --> however, this also prints fine
  signup.save();

请求负载:

{"data":{"attributes":{"email":"gg@gg.com"},"type":"signups"}}

Rails 后端:

  def create
    @signup = Signup.new({ email: params[:email] })
    p params
    # prints <ActionController::Parameters {"controller"=>"signups", "action"=>"create"} permitted: false>

    p @signup --> prints Signup object with nil for email
    @signup.save!
    render json: @signup
  end

响应负载:

{"data":{"id":"3","type":"signup","attributes":{"email":null}}}

我需要将此行添加到 config/initializers/mime_types.rb

Mime::Type.register "application/vnd.api+json", :json

这是因为我使用 JSON API 规范从 Ember 传递数据,所以我需要 Rails 正确处理它。

查看更多:https://github.com/rails/rails/issues/28564