我正在构建一个简单的登录屏幕。如果没有匹配的用户或密码不正确,我想向客户返回:internal_server_error
。但是,我收到以下丢失的模板错误:
ActionView :: MissingTemplate(缺少模板登录名/索引, 带有{:locale => [:en] 、: formats => [:json], :variants => [],:handlers => [:: raw,:erb,:html,:builder,:ruby, :coffee,:jbuilder]}。搜索到:* “ C:/ Shelf / myGroceryList / app / views”
我感到困惑的是,我在index.html.erb
中有一个views/login
模板。有想法吗?
路线:
post '/login', to: 'login#show'
Controller(login_controller.rb):
class LoginController < ApplicationController
protect_from_forgery with: :null_session
def index
end
def show
username = params.values.last["email"]
password = params.values.last["password"]
loginType = params.values.last["loginType"]
if loginType == "Login"
login(username, password)
else
createNewUser(username, password)
end
end
def login(username, password)
begin
user = User.find_by(username: username)
raise(StandardError) if user.password != password
rescue
render 'index', :status => :internal_server_error
end
end
def createNewUser(username, password)
User.new(username: username, password: password)
end
end
查看(index.html.erb):
<body><%= javascript_pack_tag 'login' %></body>
答案 0 :(得分:1)
ActionView :: MissingTemplate(缺少模板登录名/索引, 带有{:locale => [:en] 、: formats => [:json], :variants => [],:handlers => [:: raw,:erb,:html,:builder,:ruby, :coffee,:jbuilder]}。搜索到:* “ C:/ Shelf / myGroceryList / app / views”
该错误表示找不到名为 index 且格式为 json 的文件。由于您使用的是 API ,请求/响应的格式可能为 json ,而不是 html 。也就是说,您需要在index.json.erb
内创建一个app/views/login
来解决该错误。