Rails 5.1.6 参数不保存
Rails 5.1.6 params not saving
自从我对 Rails 做了很多工作以来已经有几年了,而且我对 Rails 5.1.6 没有任何经验。虽然我可以通过种子文件和 Rails 控制台保存数据,但我无法从 HTML 表单保存数据。我没有保存,而是在提交时看到身份验证令牌和参数出现在我浏览器的 URL 栏中,并重新呈现了表单。
唯一不寻常的是我在 Docker 容器中开发,但我在 5.1.4 中编写的最后一个应用程序使用相同的 Docker 文件和 Docker - 编写文件并正常运行。
我的控制器:
class UsersController < ApplicationController
before_action :find_user, only: [:show, :edit, :update]
def index
end
def new
@user = User.new
end
def create
@user = User.new(user_params)
if @user.save
redirect_to @user
else
render :new
end
end
def show
end
def edit
end
def update
if @user.update_attributes(user_params)
redirect_to users_url
else
render :edit
end
end
private
def user_params
params.require(:user).permit(:last_name, :first_name, :category, :phone_number, :email, :password, :password_confirmation)
end
def find_user
@user = User.find(params[:id])
end
end
观点:
<%= form_with model: (@user) do |f| %>
<%= f.label :first_name %>
<%= f.text_field :first_name %>
<%= f.label :last_name %>
<%= f.text_field :last_name %>
<%= f.label :email %>
<%= f.text_field :email %>
<%= f.label :phone_number %>
<%= f.text_field :phone_number %>
<%= f.submit "Create user" %>
<% end %>
型号:
class User < ApplicationRecord
belongs_to :account
end
开发日志内容:
Started GET "/users/new?utf8=%E2%9C%93&authenticity_token=r0JIvUKGw1mtIVHT582uIfVvTglMTn6PE2iYOCYNHDv5GJ5AedXb4ZS%2F7kFRmfmFA5PIJeklSbmSE3FR0SpJSg%3D%3D&user%5Bfirst_name%5D=aaa&user%5Blast_name%5D=bbb&user%5Bemail%5D=aaa%40bbb.com&user%5Bphone_number%5D=&commit=Create+user" for 172.18.0.1 at 2018-06-05 21:02:12 +0000
Processing by UsersController#new as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"r0JIvUKGw1mtIVHT582uIfVvTglMTn6PE2iYOCYNHDv5GJ5AedXb4ZS/7kFRmfmFA5PIJeklSbmSE3FR0SpJSg==", "user"=>{"first_name"=>"aaa", "last_name"=>"bbb", "email"=>"aaa@bbb.com", "phone_number"=>""}, "commit"=>"Create user"}
Rendering users/new.html.erb within layouts/application
Rendered users/new.html.erb within layouts/application (2.0ms)
Completed 200 OK in 348ms (Views: 331.7ms | ActiveRecord: 0.0ms)
URL 在 "submit" 之后:
我以前见过这种情况,但可能是三年前的事了,我不记得我是如何修复它的。如有任何想法,我们将不胜感激。
勾选
变化
<%= form_with model: (@user) do |f| %>
到
<%= form_with model: @user, local: true do |f| %>
自从我对 Rails 做了很多工作以来已经有几年了,而且我对 Rails 5.1.6 没有任何经验。虽然我可以通过种子文件和 Rails 控制台保存数据,但我无法从 HTML 表单保存数据。我没有保存,而是在提交时看到身份验证令牌和参数出现在我浏览器的 URL 栏中,并重新呈现了表单。
唯一不寻常的是我在 Docker 容器中开发,但我在 5.1.4 中编写的最后一个应用程序使用相同的 Docker 文件和 Docker - 编写文件并正常运行。
我的控制器:
class UsersController < ApplicationController
before_action :find_user, only: [:show, :edit, :update]
def index
end
def new
@user = User.new
end
def create
@user = User.new(user_params)
if @user.save
redirect_to @user
else
render :new
end
end
def show
end
def edit
end
def update
if @user.update_attributes(user_params)
redirect_to users_url
else
render :edit
end
end
private
def user_params
params.require(:user).permit(:last_name, :first_name, :category, :phone_number, :email, :password, :password_confirmation)
end
def find_user
@user = User.find(params[:id])
end
end
观点:
<%= form_with model: (@user) do |f| %>
<%= f.label :first_name %>
<%= f.text_field :first_name %>
<%= f.label :last_name %>
<%= f.text_field :last_name %>
<%= f.label :email %>
<%= f.text_field :email %>
<%= f.label :phone_number %>
<%= f.text_field :phone_number %>
<%= f.submit "Create user" %>
<% end %>
型号:
class User < ApplicationRecord
belongs_to :account
end
开发日志内容:
Started GET "/users/new?utf8=%E2%9C%93&authenticity_token=r0JIvUKGw1mtIVHT582uIfVvTglMTn6PE2iYOCYNHDv5GJ5AedXb4ZS%2F7kFRmfmFA5PIJeklSbmSE3FR0SpJSg%3D%3D&user%5Bfirst_name%5D=aaa&user%5Blast_name%5D=bbb&user%5Bemail%5D=aaa%40bbb.com&user%5Bphone_number%5D=&commit=Create+user" for 172.18.0.1 at 2018-06-05 21:02:12 +0000
Processing by UsersController#new as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"r0JIvUKGw1mtIVHT582uIfVvTglMTn6PE2iYOCYNHDv5GJ5AedXb4ZS/7kFRmfmFA5PIJeklSbmSE3FR0SpJSg==", "user"=>{"first_name"=>"aaa", "last_name"=>"bbb", "email"=>"aaa@bbb.com", "phone_number"=>""}, "commit"=>"Create user"}
Rendering users/new.html.erb within layouts/application
Rendered users/new.html.erb within layouts/application (2.0ms)
Completed 200 OK in 348ms (Views: 331.7ms | ActiveRecord: 0.0ms)
URL 在 "submit" 之后:
我以前见过这种情况,但可能是三年前的事了,我不记得我是如何修复它的。如有任何想法,我们将不胜感激。
勾选
<%= form_with model: (@user) do |f| %>
到
<%= form_with model: @user, local: true do |f| %>