-
Rails应用中关于render的问题20
我的登录页面控制器和方法是user_session/new,为了不暴漏真实URI,我在路由里这样设置:map.login '/login', :controller => 'user_sessions', :action => 'new'
登录的时候访问:http://127.0.0.1:3000/login即可。
我的登录控制器(UserSessionsController)是这样写的:def new @user_session = UserSession.new end def create @user_session = UserSession.new(params[:user_session]) if @user_session.save flash[:notice] = 'sign in successful!' redirect_back_or_default '/users/new' else render 'new' end end
这样以来,一旦出现错误(比如密码不正确之类的),就必须用render 'new'才能显示出错误,但是此时的URL也变成:http://127.0.0.1:3000/user_session/new
把真实的内部信息暴漏出来了。有什么办法可以既能显示错误信息,又不暴漏真实URI?
附:view<div id="login-form"> <% form_for @user_session, :url => user_session_path do |form| %> <div id="show-msg"><%= form.error_messages %></div> <table> <tr> <td align="right"><%= form.label t('login name') %></td> <td align="left"><%= form.text_field :login %></td> </tr> <tr> <td align="right"><%= form.label t('password') %></td> <td align="left"><%= form.password_field :password %></td> </tr> <tr> <td></td> <td align="left"> </td> </tr> <tr> <td align="left"> <a href="/account/lost_password"><%= t 'forget password'%></a> </td> <td align="right"> <%= form.submit t('login')+" >>" %> </td> </tr> </table> <% end %> </div>
2011年7月22日 17:51
2个答案 按时间排序 按投票排序
-
建议你看一看《Beginning Rails 3》这本书的
Advanced Action Pack
这一章的Sessions and the Login/Logout Logic P167
这一节,里面很详细地讲解了如何实现登陆登出功能并完全满足你对URL隐蔽性的要求。这本书的电子版在网上很容易下得到,下载地址:http://ishare.iask.sina.com.cn/f/14558345.html,希望能解决你的问题。2011年7月28日 21:34
-
你可以考虑不要用render,用redirect,设置一个@message存放错误信息,然后在view里设置显示@message,当它不为空的时候。
2011年7月27日 20:56
相关推荐
本示例将探讨如何在Rails应用中集成React,并利用webpack进行模块打包,提升项目的前端性能。 首先,React是Facebook推出的一个用于构建用户界面的JavaScript库,以其组件化开发方式和虚拟DOM(Document Object ...
在Rails应用中,视图(View)部分通常包含HTML和CSS代码,通过 erb(Embedded Ruby)模板引擎,可以将Ruby代码嵌入到HTML中,实现动态内容的生成。 在实例开发过程中,我们可能首先会设置一个新的Rails项目,通过`...
安装将此行添加到您的应用程序的Gemfile中: gem 'turbolinks_render' 然后执行: $ bundle用法默认情况下,如果满足以下条件,则render将由Turbolinks处理: 这是一个ajax请求这不是get请求它生成一个html响应( ...
- **定义**:Rails是一种用于快速开发Web应用程序的开源框架,基于Ruby语言。 - **特点**:Rails遵循“约定优于配置”的原则,简化了Web应用的开发过程,使得开发者能够专注于业务逻辑而非框架本身。 #### 三、创建...
在Rails应用中,我们还可以使用`form_for`和其他Rails助手来处理表单提交,以及`render`和`redirect_to`来管理视图和路由。 最后,`Rails应用中MongoDB+MySQL杂交`的话题意味着在同一个应用中同时使用MongoDB和...
3. **配置服务器**:设置服务器以处理Rails应用程序,如使用Puma或Unicorn。 4. **使用Capistrano**:Capistrano是一个流行的自动化部署工具,可以简化部署流程。 5. **SSL证书**:为了安全,启用HTTPS并安装SSL证书...
Rails 2.0中,控制器继承自ActionController基类,提供了许多方便的方法,如`redirect_to`和`render`。 3. **模型(Model)** 模型代表数据库中的数据,通过ActiveRecord库实现,允许开发者使用Ruby代码操作数据库。...
Paperclip与ActiveRecord紧密集成,使得在Rails应用中添加文件上传功能变得相当便捷。 **Paperclip的基本使用** 1. **安装与配置** 首先,你需要通过Gemfile来安装Paperclip,并运行`bundle install`命令: ```...
### 《打造Rails应用》——深入探索Rails框架的高级实践 #### 一、书籍概述 本书《Crafting Rails Applications》是一本专为中级至高级Rails开发者编写的指南,旨在帮助读者深入了解Rails框架的工作原理及其高级...
本文将深入探讨如何在Rails应用中实现这一功能。 首先,我们需要理解文件上传的基本流程。在Rails中,最常用的是ActionController::Params模块中的`params`对象,它允许我们处理HTTP请求中包含的表单数据,包括文件...
本书《Flexible Rails: Flex 3 on Rails 2》由Peter Armstrong撰写,旨在探讨如何结合使用Flex 3和Rails 2来开发高效的富互联网应用程序(Rich Internet Applications, RIA)。作者通过对Flex 3和Rails 2的概述以及...
Rails作为一个MVC(模型-视图-控制器)架构的Web应用框架,它的视图层主要负责展示数据,而这里的`list.rhtml`就是一个典型的视图文件,用于渲染HTML并结合服务器端的数据。 在Rails中,`.rhtml`文件是ERB...
在这个实例中,我们将探讨如何在Rails应用中实现验证码功能。 首先,我们需要一个库来帮助我们生成和验证随机的图像验证码。一个常用的库是`kaptcha`,它提供了创建图片验证码的功能,并且可以自定义样式以适应应用...
- `routes.rb`是Rails应用程序中的路由配置文件。 - 通过定义路由规则,可以指定特定的URL应该如何被处理。 - 常见的路由规则包括资源路由、命名路由等。 3. **路由通配符** - 路由通配符允许开发者创建动态...
然后,我们可以使用像是paperclip-ffmpeg或者carrierwave-ffmpeg这样的gem来集成FFmpeg到Rails应用中。对于ActiveStorage,我们可以自定义一个后台任务,比如使用Sidekiq或Resque来处理视频转换。 以下是一个使用...
它们的出现极大地提升了Rails应用中JavaScript的编写效率和可维护性,尤其是在处理动态交互和页面更新时。RJS,全称是Ruby JavaScript,允许开发者用Ruby语言来生成JavaScript代码,从而避免了直接编写复杂的...
- `rails new demo`:这将创建一个新的Rails应用程序,名为“demo”。它会生成所有基本目录结构和配置文件。 2. **启动服务器**: - `rails server` 或 `rails s`:这个命令启动Rails开发服务器,默认端口为3000...
在Rails框架中,AJAX(Asynchronous JavaScript and XML)是一种常用的技术,用于创建动态和交互式的Web应用程序。AJAX允许页面在不刷新整个页面的情况下与服务器进行通信,从而提高用户体验。在本篇博文中,我们将...