`

Rails中render和redirect_to页面显示的用法

 
阅读更多
        今天写代码的时候遇到页面跳转的问题,所以查了render 和redirect_to的异同及用法,render 和redirect_to 都是执行页面跳转,并且写在这两个方法后面的语句仍然会被执行。
1.render:简单的页面渲染,可以指定渲染的页面或布局文件,但是不会发出请求,只根据函数参数渲染页面,不会执行action函数,不会重新加载服务器中的数据。render的用法如下:
(1)直接渲染出文本:
render(:text => string) 

(2)直接调用某个action的模板,action_name方法在当前controller里:
render(:action => action_name) 

(3)调用某个action的模板,action_name方法不在当前controller里:
render :action => action_name,:controller=>'.......' 

(4)使用某个模板文件render, 当use_full_path参数为true时可以传入相对路径
render(:file => path, [:use_full_path => true|false]) 

(5)默认的的render, 相当于render(:action => self)
render()   

2.redirect_to:发送请求重定向页面,可以指定controller和action,会执行对应的action方法的跳转,重新加载服务器数据,不保留页面中原有的数据。redirect_to的用法如下:
redirect_to :action => 'edit', :id => 7
redirect_to "http://dachuan212.iteye.com/"
redirect_to "/images/1.jpg" 
redirect_to :back

上述第4行是回到上一次访问的页面
分享到:
评论

相关推荐

    rails上传文件_paperclip

    redirect_to @user, notice: 'User was successfully created.' else render :new end end private def user_params params.require(:user).permit(:name, :email, :avatar) end ``` **Paperclip的高级...

    rails ajax提交文件或图片

    在Rails中,`form_for`辅助方法可以帮助我们创建一个表单,但为了支持AJAX提交,我们需要将其与`remote: true`选项一起使用: ```html <%= form_for @upload, url: uploads_path, html: { multipart: true }, ...

    Ruby on Rails实例开发

    在控制器中,我们会定义动作(actions)来处理HTTP请求,并通过`render`或`redirect_to`方法决定响应内容。视图则包含HTML和erb代码,用以展示数据。 至于论文.docx文件,可能包含了对整个实例开发过程的详细分析、...

    Rails API 文档

    Rails 2.0中,控制器继承自ActionController基类,提供了许多方便的方法,如`redirect_to`和`render`。 3. **模型(Model)** 模型代表数据库中的数据,通过ActiveRecord库实现,允许开发者使用Ruby代码操作数据库。...

    Ruby on Rails敏捷开发最佳实践源代码

    Rails提供了许多内置辅助方法,如`redirect_to`和`render`,帮助开发者管理请求流程。 4. **路由(Routing)**:Rails的路由系统将URL映射到控制器的特定动作上,确保每个URL都能正确触发相应的处理逻辑。开发者...

    rails 邮件支持

    redirect_to root_path else render :new end end ``` 在生产环境中,你需要配置SMTP服务器来实际发送邮件。这通常在`config/environments/production.rb`中进行: ```ruby config.action_mailer.delivery_...

    r4ia_examples:Rails 4 in Action书中的代码

    书中的例子可能会展示如何定义控制器动作,处理参数,以及如何使用Rails的辅助方法如redirect_to和render。 2. 模型(Models):模型层主要与数据交互,通过ActiveRecord实现对象关系映射(ORM)。你可以看到如何...

    Ruby on Rails实现最基本的用户注册和登录功能的教程

    redirect_to sessions_new_path else render "new" end end private def user_params params.require(:user).permit(:username, :password, :password_confirmation) end end ``` ##### 3. 设计注册界面 ...

    re_former:练习用rails制作表单

    在处理完表单后,你可能还会学习到如何使用`redirect_to`和`render`来控制页面流向。例如,如果用户成功创建账户,你可能希望重定向他们到登录页面;如果创建失败,则渲染带有错误信息的表单页面。 最后,不要忘记...

    rails-style-guide:社区驱动的Ruby on Rails样式指南

    - 尽可能少地在控制器中创建实例变量,使用`render`或`redirect_to`结束动作。 6. **模型**: - 遵循ActiveRecord的约定优于配置原则,例如,表名通常为复数形式,如`users`。 - 使用`attr_accessor`来定义虚拟...

    使用ActionMail发送邮件

    redirect_to root_path else render 'new' end end ``` 总结起来,ActionMail在Rails中提供了一个简洁、高效的邮件发送机制。通过定义Mailer类和邮件模板,我们可以轻松地创建各种类型的邮件,并通过配置SMTP...

    Ruby-OmniAuth利用Rack中间件的一个灵活认证系统

    redirect_to root_url, notice: 'Welcome!' rescue ActiveRecord::RecordInvalid flash.now[:error] = 'Invalid account details' render :new end ``` 这个例子中,`User.create_with_omniauth` 方法是应用自己...

    基于sqlite的ror例子

    redirect_to users_path, notice: '用户创建成功' else render :new end end private def user_params params.require(:user).permit(:name, :email) end end ``` 6. **使用SQLite命令行工具**:虽然...

    Ruby-Interactor为执行复杂的交互提供了一个公共接口在一个单一的请求

    redirect_to user_path(context.user) else render :new, error: context.error end end end ``` 这样,即使业务逻辑变得非常复杂,控制器仍然保持轻量级,易于测试和理解。此外,由于Interactor是独立的,...

    mailboxer-app:使用邮箱管理器 gem 的沙盒消息传递应用程序

    redirect_to conversations_path end ``` 在视图中,展示收件箱、发件箱和草稿箱的内容: ```erb <%= render 'conversations/inbox' %> # 显示收件箱 <%= render 'conversations/sent' %> # 显示发件箱 <%= ...

    作品集-PE-v4

    Rails提供了许多内置的控制器助手方法,如redirect_to和render,帮助开发者优雅地控制应用程序流程。 此外,Rails还强调测试驱动开发(TDD),通常包含一系列的测试文件,如RSpec或Test::Unit,用于确保代码的质量...

    Jfina 自搭框架

    Jfinal 提供了丰富的API,如`render()`、`redirect()`等,方便开发者快速响应请求。 2. **Model**:模型层主要负责数据的持久化操作,通常对应数据库中的表。Jfina 使用ActiveRecord模式,模型类可以直接执行SQL...

    learn-expressjs:学习Express.js

    你可以使用 `res.send()`, `res.json()`, `res.redirect()` 等方法来发送数据或重定向。 7. **错误处理(Error Handling)**:Express.js 提供了全局错误处理中间件,可以捕获应用中的未处理异常。通常,这样的...

Global site tag (gtag.js) - Google Analytics