要在Ruby on Rails中保存用户的电子邮件,而不使用Devise,可以遵循以下步骤:
rails generate model User email:string
rails db:migrate
<%= form_for @user do |f| %>
<%= f.label :email %>
<%= f.email_field :email %>
<%= f.submit "Register" %>
<% end %>
<%= form_tag login_path do %>
<%= label_tag :email %>
<%= email_field_tag :email %>
<%= submit_tag "Login" %>
<% end %>
# users_controller.rb
class UsersController < ApplicationController
def new
@user = User.new
end
def create
@user = User.new(user_params)
if @user.save
redirect_to root_path, notice: "User created successfully"
else
render :new
end
end
private
def user_params
params.require(:user).permit(:email)
end
end
# sessions_controller.rb
class SessionsController < ApplicationController
def create
user = User.find_by(email: params[:email])
if user
session[:user_id] = user.id
redirect_to root_path, notice: "Logged in successfully"
else
flash.now[:alert] = "Invalid email"
render :new
end
end
end
# routes.rb
Rails.application.routes.draw do
resources :users, only: [:new, :create]
get '/login', to: 'sessions#new'
post '/login', to: 'sessions#create'
end
现在,您可以在应用程序中使用上述代码来保存用户的电子邮件,而无需使用Devise。