Ruby on rails 使用Desive rails将登录和注册放在一页中
我刚刚创建了一个新的rails应用程序并添加了Desive。为每个登录(用户/登录)和注册(用户/登录)页面提供不同的页面是由设备本身提供的。但我想在自定义控制器(欢迎/主页)的单个页面中添加登录和注册表单 另外,我对用户控制器如何映射到views/designe/中的页面感到困惑,并希望将登录和注销页面放在一个屋顶下 有人能告诉我如何修改代码来实现这一点吗 而且我对用户控制器是如何映射到 视图/设计中的页面/ 事实并非如此 -Ruby on rails 使用Desive rails将登录和注册放在一页中,ruby-on-rails,ruby,authentication,devise,Ruby On Rails,Ruby,Authentication,Devise,我刚刚创建了一个新的rails应用程序并添加了Desive。为每个登录(用户/登录)和注册(用户/登录)页面提供不同的页面是由设备本身提供的。但我想在自定义控制器(欢迎/主页)的单个页面中添加登录和注册表单 另外,我对用户控制器如何映射到views/designe/中的页面感到困惑,并希望将登录和注销页面放在一个屋顶下 有人能告诉我如何修改代码来实现这一点吗 而且我对用户控制器是如何映射到 视图/设计中的页面/ 事实并非如此 - 会话\u controller.rb(用于登录/注销) 注册\u
(用于登录/注销)会话\u controller.rb
(用于注册)注册\u controller.rb
(用于忘记等)密码\u controller.rb
(用于确认)确认\u controller.rb
(我相信是为了邀请)解锁\u controller.rb
design_时,它会创建一系列映射到这些控制器的路由。的确如此:
这意味着所有designe
路由路径实际上是由designe
gem本身形成的,而不是用户
控制器
修复
要解决您的问题,您需要参考以下内容-
具体而言,您需要使用以下各项:
#app/helpers/application_helper.rb
class ApplicationHelper
def resource_name
:user
end
def resource
@resource ||= User.new
end
def devise_mapping
@devise_mapping ||= Devise.mappings[:user]
end
end
这将使您能够调用design的资源
,这意味着您可以在应用程序中使用所需的表单
现在,我极力推荐的是将您的设计表单保留在同一位置。不要改变它们。您想将它们称为partials
下面是一个示例:(在顶部登录/注册):
这是我们不久前开发的一个应用程序-它将登录/注册视图称为部分:
#app/views/layouts/application.html.erb
...
<%= render "devise/sessions/new" %>
#app/views/layouts/application.html.erb
...
你如何设计它将取决于你的CSS
如果您想了解更多信息,请告诉我 它们是分开的表格吗?是的。它们将像在每个常规站点一样并排放置…你可以登录或注册。好的。您不会对表单有任何问题。他们会是一样的。这里真正的问题在于链接,因为Deave需要(designe/sessions/new.html.erb-sign-in和design/registrations/new-sign-up)。因此,请确保重定向正确。(请参阅设计文档)我已设法将两个表单并排放置..但在这里,当我填写登录表单并尝试登录..它会将我重定向到用户/登录页..我不希望..我希望能够从那里自己登录。感谢您提供的清晰信息。一个问题。。当我在登录和登录页面中遇到错误时,它会呈现/登录和/登录页面..而不是在那里显示错误..这是为什么?@RahulDess,嗨,嗨,我遇到了同样的问题。你找到解决办法了吗?
#app/views/layouts/application.html.erb
...
<%= render "devise/sessions/new" %>