Ruby on rails 使用Desive rails将登录和注册放在一页中

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

我刚刚创建了一个新的rails应用程序并添加了Desive。为每个登录(用户/登录)和注册(用户/登录)页面提供不同的页面是由设备本身提供的。但我想在自定义控制器(欢迎/主页)的单个页面中添加登录和注册表单

另外,我对用户控制器如何映射到views/designe/中的页面感到困惑,并希望将登录和注销页面放在一个屋顶下

有人能告诉我如何修改代码来实现这一点吗

而且我对用户控制器是如何映射到 视图/设计中的页面/

事实并非如此

-

  • 会话\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" %>