我有2个布局
我用设计。 在application_controller.rb中我写了这段代码:
protect_from_forgery with: :exception
layout :another_by_method
private
def another_by_method
if user_signed_in?
"application"
else
"login"
end
end
通过此代码,如果用户不登录,请登录login.html.erb。 我想在login.html.erb中使用devise sign_in表单,但由于此代码,所有页面都是redirect_to login.html。 我也使用下面的代码,
<%= render partial: "devise/sessions/new"%>
但得到此错误:
ActionView::MissingTemplate in Devise::Sessions#new
任何想法?!
答案 0 :(得分:0)
您正在尝试渲染部分内容,但devise/sessions/new
不是部分内容。
无论如何,您是否使用rails generate devise:views
生成了观看次数?如果是这样,你可以这样做:
= render file: 'devise/sessions/new'
使用file
代替partial
,但您需要Devise提供的所有变量,如resource,resource_name或devise_mapping。