Html 调用render时未加载Ruby布局
我正在使用模型验证,我想用register.html.erb页面加载默认布局。但是,当我只使用渲染Html 调用render时未加载Ruby布局,html,ruby-on-rails,ruby,Html,Ruby On Rails,Ruby,我正在使用模型验证,我想用register.html.erb页面加载默认布局。但是,当我只使用渲染寄存器时,我的布局没有加载。请检查- #users_controller.rb def create @user = User.new(create_user_params) #raise @user.inspect respond_to do |format| if @user.save format.html { redirect_to :su
寄存器时,我的布局没有加载。请检查-
#users_controller.rb
def create
@user = User.new(create_user_params)
#raise @user.inspect
respond_to do |format|
if @user.save
format.html { redirect_to :success, notice: 'Registration was successfully created.' }
format.json { render :success, status: :created, location: @users }
else
format.html { render :register }
format.json { render json: @users.errors, status: :unprocessable_entity }
end
end
end
下面是format.html{render:register}
我已成功获取验证错误消息。但是设计只缺少加载register.html.erb
。完整页面未随布局一起提供。如果我使用重定向\u至:注册
而不是呈现:注册
我的页面成功重定向至注册页面,但我的错误消息未显示
我将如何显示我的验证错误和设计
用户\u控制器.rb
class UsersController < ApplicationController
before_action :set_user, only: [:show, :edit, :destroy, :register_success]
# GET /users
# GET /users.json
def index
@users = User.all
end
# GET /users/1
# GET /users/1.json
def show
end
# GET /users/new
def new
@user = User.new
end
# GET /users/1/edit
def edit
end
#=============================CHINU CODE START
def login
@title = 'Login'
render layout: 'login'
end
def create_login
user = User.authenticate(params[:user][:username], params[:user][:password])
if user
log_in @user
redirect_to @user
else
flash[:danger] = 'Invalid email/password combination' # Not quite right!
redirect_to :back
end
end
def register
@user = User.new
@title = 'Register'
render layout: 'login'
end
def create
@user = User.new(create_user_params)
#raise @user.inspect
respond_to do |format|
if @user.save
format.html { redirect_to @users, notice: 'Registration was successfully created.' }
format.json { redirect_to :success, status: :created, location: @users }
else
format.html { render :register }
format.json { render json: @users.errors, status: :unprocessable_entity }
end
end
end
def register_success
raise @user.inspect
end
def check_email
email = params[:user]
user = User.where("email = ?", email).first
if user.present?
render :json => [false , "This email is already taken"]
else
render :json => [true , "Email available"]
end
end
def check_username
username = params[:user]
user = User.where("username = ?", username).first
if user.present?
render :json => [false , "Username has already been taken"]
else
render :json => [true , "Username available"]
end
end
#=============================CHINU CODE END
private
# Use callbacks to share common setup or constraints between actions.
def set_user
@user = User.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def user_params
params.require(:user).permit(:name, :username, :email, :password, :image, :dob, :photo, :address)
end
def create_user_params
params.require(:user).permit(:name, :username, :email, :password, :dob, :address)
end
def login_user_params
params.require(:user).permit(:username, :password, :password_confirmation)
end
end
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
include SessionsHelper
end
class UsersController[false,“此电子邮件已被接收”]
其他的
render:json=>[true,“电子邮件可用”]
结束
结束
def check_用户名
用户名=参数[:用户]
user=user.where(“username=?”,username.first
如果user.present?
render:json=>[false,“用户名已被使用”]
其他的
render:json=>[true,“用户名可用”]
结束
结束
#==================================================================中国代码结束
私有的
#使用回调在操作之间共享公共设置或约束。
def set_用户
@user=user.find(参数[:id])
结束
#永远不要相信来自恐怖网络的参数,只允许白名单通过。
def用户参数
参数require(:user).permit(:name,:username,:email,:password,:image,:dob,:photo,:address)
结束
def创建用户参数
参数require(:user).permit(:name,:username,:email,:password,:dob,:address)
结束
def登录\用户\参数
参数require(:user).permit(:用户名,:密码,:密码确认)
结束
结束
应用程序\u控制器.rb
class UsersController < ApplicationController
before_action :set_user, only: [:show, :edit, :destroy, :register_success]
# GET /users
# GET /users.json
def index
@users = User.all
end
# GET /users/1
# GET /users/1.json
def show
end
# GET /users/new
def new
@user = User.new
end
# GET /users/1/edit
def edit
end
#=============================CHINU CODE START
def login
@title = 'Login'
render layout: 'login'
end
def create_login
user = User.authenticate(params[:user][:username], params[:user][:password])
if user
log_in @user
redirect_to @user
else
flash[:danger] = 'Invalid email/password combination' # Not quite right!
redirect_to :back
end
end
def register
@user = User.new
@title = 'Register'
render layout: 'login'
end
def create
@user = User.new(create_user_params)
#raise @user.inspect
respond_to do |format|
if @user.save
format.html { redirect_to @users, notice: 'Registration was successfully created.' }
format.json { redirect_to :success, status: :created, location: @users }
else
format.html { render :register }
format.json { render json: @users.errors, status: :unprocessable_entity }
end
end
end
def register_success
raise @user.inspect
end
def check_email
email = params[:user]
user = User.where("email = ?", email).first
if user.present?
render :json => [false , "This email is already taken"]
else
render :json => [true , "Email available"]
end
end
def check_username
username = params[:user]
user = User.where("username = ?", username).first
if user.present?
render :json => [false , "Username has already been taken"]
else
render :json => [true , "Username available"]
end
end
#=============================CHINU CODE END
private
# Use callbacks to share common setup or constraints between actions.
def set_user
@user = User.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def user_params
params.require(:user).permit(:name, :username, :email, :password, :image, :dob, :photo, :address)
end
def create_user_params
params.require(:user).permit(:name, :username, :email, :password, :dob, :address)
end
def login_user_params
params.require(:user).permit(:username, :password, :password_confirmation)
end
end
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
include SessionsHelper
end
class ApplicationController
您所说的“完整设计”是什么意思?缺少什么部分?完整的设计意味着我在application.html.erb
layout中编写了css和js。但是我的布局没有加载。所以所有的css和js都丢失了。只有register.html.erb
页面表单设计即将推出。@Chinu您的控制器是否继承ApplicationController
?是我的控制器继承请回答: