Я использовал Devise для аутентификации моего пользователя, затем добавил миграцию для имени, фамилии и имени пользователя. После того, как я изменил свой простой код формы, мой путь sign_up перенаправил меня на сообщение «Вам необходимо войти или зарегистрироваться перед тем, как продолжить». без имени ошибки.
Ссылка на мой сайт также странная, поскольку она имеет sign_up.user http://localhost: 3000 / users / sign_up.user
Это мой код, который отправляет меня по неверному пути в devise / shared / links
<%- if devise_mapping.registerable? && controller_name != 'registrations' %>
<%= link_to "Sign up", new_user_registration_path(resource_name) %><br />
<% end %>
Это моя простая форма в devise / registrations / new (не реализовано first_name, last_name и username пока.
<h2>Sign up</h2>
<%= simple_form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
<%= f.error_notification %>
<div class="form-inputs">
<%= f.input :email,
required: true,
autofocus: true,
input_html: { autocomplete: "email" }%>
<%= f.input :password,
required: true,
hint: ("#{@minimum_password_length} characters minimum" if @minimum_password_length),
input_html: { autocomplete: "new-password" } %>
<%= f.input :password_confirmation,
required: true,
input_html: { autocomplete: "new-password" } %>
</div>
<div class="form-actions">
<%= f.button :submit, "Sign up" %>
</div>
<% end %>
<%= render "devise/shared/links" %>
И мои маршруты ...
Rails.application.routes.draw do
root to: 'pages#home'
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
resources :items
get 'menu', to: 'items#menu'
get 'items_stock', to: 'items#stock'
devise_for :users, :controllers => { registrations: :registrations }
get 'users/:slug', to: 'users#show', as: :user_show
get 'my_profile', to: 'users#my_profile'
end
Я также пытался создать другой контроллер для перезаписи, не работал ...
class RegistrationsController < ApplicationController
def new
@user = User.new
end
def create
@user = User.new(user_params)
@user.save
if @user.save
redirect_to user_path(@user)
authorize @user
else
render :new
end
end
private
def user_params
params.require(:user).permit(:first_name, :last_name, :username, :email, :password, :password_confirmation)
end
end
Мои маршруты
new_user_session GET /users/sign_in(.:format) devise/sessions#new
user_session POST /users/sign_in(.:format) devise/sessions#create
destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
new_user_password GET /users/password/new(.:format) devise/passwords#new
edit_user_password GET /users/password/edit(.:format) devise/passwords#edit
user_password PATCH /users/password(.:format) devise/passwords#update
PUT /users/password(.:format) devise/passwords#update
POST /users/password(.:format) devise/passwords#create
cancel_user_registration GET /users/cancel(.:format) registrations#cancel
new_user_registration GET /users/sign_up(.:format) registrations#new
edit_user_registration GET /users/edit(.:format) registrations#edit
user_registration PATCH /users(.:format) registrations#update
PUT /users(.:format) registrations#update
DELETE /users(.:format) registrations#destroy
POST /users(.:format) registrations#create
user_show GET /users/:slug(.:format) users#show
my_profile GET /my_profile(.:format) users#my_profile
Я действительно не знаю, какой файл может повлиять на это.