控制器:
def store
if params[:name].present? && params[:pass].present? && params[:cpass].present? && params[:role].present?
@name = params[:name].downcase
if CheckEmpName(@name) == 0
render "userexist"
return
end
pass = params[:pass]
cpass = params[:cpass]
if pass != cpass
render "passerror"
return
end
role = params[:role]
@user = Employee.new(name: @name, password: pass, role: role)
@user.save
end
render "success"
end
当所有用户输入有效时,上述操作会呈现“success.html.erb”页面。相反,如果用户名已经注册 或者密码和确认密码都不匹配,然后它会呈现相应的错误文件“userexist.html.erb”或 “passerror.html.erb”。
问题:
我可以在success.html.erb文件中访问@name实例变量。但我无法在两个错误中访问它 html文件。为什么它只能在“成功”而不是“userexist”和“passerror”中访问。为什么它无法访问。而我需要的是什么 在两个错误处理html页面中访问这些变量?
答案 0 :(得分:1)
您可以显式传递您想要访问的任何内容作为locals
哈希参数来调用render
:
render "userexist", locals: { name: @name }
现在name
将传递给基础模板。