0

我是一个有概念性问题的 Rails 新手:

我想实现一个登录/注销机制。我目前正在关注 Michael Hartl 的 RoR 教程。问题是,该教程涉及使用单独的控制器和视图实现会话。我希望我的登录表单出现在主页上(意思是,我不想要 session/new.html.erb 页面)。

实现这一目标的最佳方法是什么?我应该使用助手吗?一个模块?是否可以使用 SessionsController 来实现这一点?

我正在新的领域游泳,因此非常感谢任何帮助(或示例)。谢谢!

PS我正在使用Rails 3

4

1 回答 1

1

这通常是通过部分完成的。我刚刚在这里回答了一个方向相同的问题:设置路线不正确?

你有你的home/index行动和你的home/index.erb或其他的,你可以在这个视图中包含任何文件。这些被称为部分,并以下划线开头。如果您的这部分视图将在整个应用程序中重复使用,我通常会创建一个shared文件夹并将所有帮助程序部分放在那里。像这样:

|____views
| | |____users
| | | |____index.slim
| | | |____show.slim
| |____shared
| | |_____footer.html.slim
| | |_____headline.slim
| | |_____hint.html.slim

请记住,partials 以 an 开头,_如果<%= render('/shared/login') %>文件是app/views/shared/_login.html.erb

接下来是您希望将登录逻辑保存在SessionsController. 这是一件好事!您只需将您的登录表单指向正确的路线。当您在 rails4 上时运行rake routes或指向您的浏览器以/routes找出要指向的路线。因为它通常是创建操作,所以使用 HTTP 发布不会有任何问题,因为这是 rails 中的默认设置。所以它会像

<%= form_for sessions_path do |f| %>

始终保持您的开发日志打开,以了解您的所有请求的去向。我通常有一个终端窗口运行tail -f log/development.log.

于 2013-10-06T09:55:55.433 回答