У меня есть приложение для рельсов, в котором используется приложение, которое отлично работает. Теперь я хочу, чтобы пользователи могли предоставить информацию о своих предыдущих клиентах, которые я хочу добавить в таблицу пользователей. Однако всякий раз, когда он пытается создать нового пользователя, он терпит неудачу, потому что он пытается создать пользователя, используя текущий идентификатор держателей сеансов. Помогите!Rails Позволяет пользователям создавать пользователей
Контроллер
class Suppliers::PreviousProjectsController < ApplicationController
before_action :authenticate_user!
def new
@new_user = User.new
end
def create
@new_user = User.new(previous_projects_params)
if @new_user.save
redirect_to root_path, notice: 'Previous customer created'
else
render :new
end
end
protected
def previous_projects_params
params.require(:user)
.permit(:first_name, :last_name, :phone, :email)
end
end
Маршруты
get "suppliers/previous_projects/new" => 'suppliers/previous_projects#new'
post "suppliers/previous_projects/create" => 'suppliers/previous_projects#create'
Посмотреть
<div id="customer_dashboard">
<div class="container-fluid">
<div class="row">
<div class="col-sm-3 col-md-2 sidebar">
<%= render 'customers/menu' %>
</div>
<div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
<h1 class="page-header"><%= @title %></h1>
<div class= "project_form">
<%= form_for(@user, url: suppliers_previous_projects_create_path(@user)) do |f| %>
<div class="form-group col-sm-6">
<%= f.label :first_name, class: "required" %><br />
<%= f.text_field :first_name, autofocus: true, :required => 'required', class: "form-control" %>
</div>
<div class="form-group col-sm-6">
<%= f.label :last_name, class: "required" %><br />
<%= f.text_field :last_name, :required => 'required', class: "form-control" %>
</div>
<div class="form-group col-sm-6">
<%= f.label "Mobile Number", class: "required" %><br />
<%= f.text_field :phone, :required => 'required', class: "form-control" %>
</div>
<div class="form-group col-sm-6">
<%= f.label :email, class: "required" %><br />
<%= f.email_field :email, :required => 'required', class: "form-control" %>
</div>
<div class="actions center space_big">
<%= f.submit "Save User", class: "btn btn-lg btn-success" %>
</div>
<% end %>
</div>
</div>
</div>
</div>
Журнал
Started POST "/suppliers/previous_projects/create" for ::1 at 2017-01-27 11:04:08 +0200
Processing by Suppliers::PreviousProjectsController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"u+/ydnO4lSBcJtuqOWNiqccRWosTydAZ3Kd81wwO+DbveFRUYw53JsI0x6bolaSQTapgSrw6njnboBDFfSNlIw==", "user"=>{"first_name"=>"Stev", "last_name"=>"Three", "phone"=>"23092309029309", "email"=>"[email protected]"}, "commit"=>"Save User"}
User Load (0.5ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" ASC LIMIT $2 [["id", 2], ["LIMIT", 1]]
(0.2ms) BEGIN
User Exists (1.1ms) SELECT 1 AS one FROM "users" WHERE "users"."email" = $1 LIMIT $2 [["email", "[email protected]"], ["LIMIT", 1]]
(0.8ms) ROLLBACK
Rendering suppliers/previous_projects/new.html.erb within layouts/application
Rendered customers/_menu.html.erb (2.8ms)
Rendered suppliers/previous_projects/new.html.erb within layouts/application (16.3ms)
Completed 200 OK in 152ms (Views: 141.6ms | ActiveRecord: 2.5ms)
FYI - Пользователь в этом случае должен был новый идентификатор. Вместо этого он попытался предоставить пользователю идентификатор 2, который был идентификатором создающего пользователя. Большое спасибо за любую помощь!
Update
Это отдельная запись в журнале, если я использую полностью хаотического E-mail адрес
Started POST "/suppliers/previous_projects/create" for ::1 at 2017-01-27 16:33:25 +0200
Processing by Suppliers::PreviousProjectsController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"ezEpssYnOU1LProVW4I14qKjINcRfs2/EJdsHlrSGc/bzZUxny8NbbQJgEjEZljWxtyqhJ+mwYBkyGuiitjqeg==", "user"=>{"first_name"=>"Random First Name", "last_name"=>"Random Last Name", "phone"=>"093409239032902", "email"=>"[email protected]"}, "commit"=>"Save User"}
(0.9ms) BEGIN
User Exists (0.7ms) SELECT 1 AS one FROM "users" WHERE "users"."email" = $1 LIMIT $2 [["email", "[email protected]"], ["LIMIT", 1]]
(12.1ms) ROLLBACK
Rendering suppliers/previous_projects/new.html.erb within layouts/application
User Load (0.4ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" ASC LIMIT $2 [["id", 2], ["LIMIT", 1]]
Rendered customers/_menu.html.erb (5.7ms)
Rendered suppliers/previous_projects/new.html.erb within layouts/application (13.2ms)
Completed 200 OK in 161ms (Views: 113.4ms | ActiveRecord: 14.2ms)