我有一个像这样的简单新表格:
<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 %>
如您所见,它调用了下面定义的创建操作:
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
我想要的是我的方法创建接受输入作为 json 参数,然后将这些参数转换为用户对象,然后保存该对象。
更新:
我有以下定义为 post 的创建方法:
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::InvalidAuthenticityToken#create