次のような単純な新しいフォームがあります。
<h1> New </h1>
<%= form_for :user, url: 'create' do |f| %>
<p>
<%= f.label :firstName %>
<%= f.text_field :firstName %>
</p>
<p>
<%= f.label :lastName %>
<%= f.text_field :lastName %>
</p>
<p>
<%= f.label :userName %>
<%= f.text_field :userName %>
</p>
<p>
<%= f.label :password %>
<%= f.text_field :password %>
</p>
<p>
<%= f.label :email %>
<%= f.text_field :email %>
</p>
<p>
<%= f.submit %>
</p>
<% end %>
ご覧のとおり、以下に定義されている create アクションを呼び出します。
def create
@user = User.new(params[:user])
@user.save
end
次のエラーが表示されます。
ActiveModel::ForbiddenAttributesError
Extracted source (around line #8):
6
7
8
9
10
11
def create
@user = User.new(params[:user])
@user.save
end
私が望むのは、メソッド create が入力を json 引数として受け入れ、それらの引数をユーザー オブジェクトに変換してからオブジェクトを保存することだけです。
アップデート:
post として定義されている次の create メソッドがあります。
def create
@user = User.new(user_params)
@user.save
end
次のjsonを送信していますが、保存されません:
{"firstName":"John", "lastName:"Doe", "userName":"johndoe", "password":"mypassword", "email":"johndoe@gmail.com"}
アップデート:
次の JSON を渡した後:
{"user":{"firstName":"John", "lastName:"Doe", "userName":"johndoe", "password":"mypassword", "email":"johndoe@gmail.com"}}
HTTPClient アプリケーションで次のエラーが発生します。
<h2>795: unexpected token at '{"user":{"firstName":"John", "lastName:"Doe", "userName":"johndoe", "password":"mypassword", "email":"johndoe@gmail.com"}}'</h2>
アップデート:
JSONを正しく取得した後、次のエラーが表示されます。
ActionController::UsersController#create の InvalidAuthenticityToken