2017-12-16 6 views
3

Ember Data呼び出しを設定して電子メールを含むサインアップオブジェクトを作成しようとしています。 paramsが渡されたように見えますが、Railsはそれらを受け取ることができないので、Ember Dataのセットアップで何かがファンキーです。何が間違っているのか分かりません。Ember DataがcreateRecord経由でParamsをRailsに正しく渡すことができません

エンバーフロントエンド:

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":"[email protected]"},"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}}} 

答えて

1

この行をconfig/initializers/mime_types.rbに追加する必要がありました。

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

私はJSON API仕様を使用してEmberからデータを渡すので、Railsに正しく処理させる必要があるからです。

もっと見る:https://github.com/rails/rails/issues/28564

関連する問題