`

Parameters Sessions Responses Renders Redirects

阅读更多
== Parameters
  #
  # All request parameters, whether they come from a GET or POST request, or from the URL, are available through the params method
  # which returns a hash. For example, an action that was performed through <tt>/weblog/list?category=All&limit=5</tt> will include
  # <tt>{ "category" => "All", "limit" => 5 }</tt> in params.
  #
  # It's also possible to construct multi-dimensional parameter hashes by specifying keys using brackets, such as:
  #
  #   <input type="text" name="post[name]" value="david">
  #   <input type="text" name="post[address]" value="hyacintvej">
  #
  # A request stemming from a form holding these inputs will include <tt>{ "post" => { "name" => "david", "address" => "hyacintvej" } }</tt>.
  # If the address input had been named "post[address][street]", the params would have included
  # <tt>{ "post" => { "address" => { "street" => "hyacintvej" } } }</tt>. There's no limit to the depth of the nesting.
  #
  # == Sessions
  #
  # Sessions allows you to store objects in between requests. This is useful for objects that are not yet ready to be persisted,
  # such as a Signup object constructed in a multi-paged process, or objects that don't change much and are needed all the time, such
  # as a User object for a system that requires login. The session should not be used, however, as a cache for objects where it's likely
  # they could be changed unknowingly. It's usually too much work to keep it all synchronized -- something databases already excel at.
  #
  # You can place objects in the session by using the <tt>session</tt> method, which accesses a hash:
  #
  #   session[:person] = Person.authenticate(user_name, password)
  #
  # And retrieved again through the same hash:
  #
  #   Hello #{session[:person]}
  #
  # For removing objects from the session, you can either assign a single key to +nil+:
  #
  #   # removes :person from session
  #   session[:person] = nil
  #
  # or you can remove the entire session with +reset_session+.
  #
  # Sessions are stored by default in a browser cookie that's cryptographically signed, but unencrypted.
  # This prevents the user from tampering with the session but also allows him to see its contents.
  #
  # Do not put secret information in cookie-based sessions!
  #
  # Other options for session storage are:
  #
  # * ActiveRecord::SessionStore - Sessions are stored in your database, which works better than PStore with multiple app servers and,
  #   unlike CookieStore, hides your session contents from the user. To use ActiveRecord::SessionStore, set
  #
  #     config.action_controller.session_store = :active_record_store
  #
  #   in your <tt>config/environment.rb</tt> and run <tt>rake db:sessions:create</tt>.
  #
  # * MemCacheStore - Sessions are stored as entries in your memcached cache.
  #   Set the session store type in <tt>config/environment.rb</tt>:
  #
  #     config.action_controller.session_store = :mem_cache_store
  #
  #   This assumes that memcached has been installed and configured properly.
  #   See the MemCacheStore docs for more information.
  #
  # == Responses
  #
  # Each action results in a response, which holds the headers and document to be sent to the user's browser. The actual response
  # object is generated automatically through the use of renders and redirects and requires no user intervention.
  #
  # == Renders
  #
  # Action Controller sends content to the user by using one of five rendering methods. The most versatile and common is the rendering
  # of a template. Included in the Action Pack is the Action View, which enables rendering of ERb templates. It's automatically configured.
  # The controller passes objects to the view by assigning instance variables:
  #
  #   def show
  #     @post = Post.find(params[:id])
  #   end
  #
  # Which are then automatically available to the view:
  #
  #   Title: <%= @post.title %>
  #
  # You don't have to rely on the automated rendering. Especially actions that could result in the rendering of different templates will use
  # the manual rendering methods:
  #
  #   def search
  #     @results = Search.find(params[:query])
  #     case @results
  #       when 0 then render :action => "no_results"
  #       when 1 then render :action => "show"
  #       when 2..10 then render :action => "show_many"
  #     end
  #   end
  #
  # Read more about writing ERb and Builder templates in link:classes/ActionView/Base.html.
  #
  # == Redirects
  #
  # Redirects are used to move from one action to another. For example, after a <tt>create</tt> action, which stores a blog entry to a database,
  # we might like to show the user the new entry. Because we're following good DRY principles (Don't Repeat Yourself), we're going to reuse (and redirect to)
  # a <tt>show</tt> action that we'll assume has already been created. The code might look like this:
  #
  #   def create
  #     @entry = Entry.new(params[:entry])
  #     if @entry.save
  #       # The entry was saved correctly, redirect to show
  #       redirect_to :action => 'show', :id => @entry.id
  #     else
  #       # things didn't go so well, do something else
  #     end
  #   end
  #
  # In this case, after saving our new entry to the database, the user is redirected to the <tt>show</tt> method which is then executed.
  #
  # == Calling multiple redirects or renders
  #
  # An action may contain only a single render or a single redirect. Attempting to try to do either again will result in a DoubleRenderError:
  #
  #   def do_something
  #     redirect_to :action => "elsewhere"
  #     render :action => "overthere" # raises DoubleRenderError
  #   end
  #
  # If you need to redirect on the condition of something, then be sure to add "and return" to halt execution.
  #
  #   def do_something
  #     redirect_to(:action => "elsewhere") and return if monkeys.nil?
  #     render :action => "overthere" # won't be called if monkeys is nil
  #   end
分享到:
评论

相关推荐

    Paypal Sessions Viewer--for zencart1.5

    【Paypal Sessions Viewer--for zencart1.5】是一个专为Zen Cart 1.5电子商务平台设计的工具,主要用于查看Paypal交易过程中的会话数据。这个工具可以帮助店主更好地理解Paypal支付流程中用户的交互行为,从而进行...

    virtual-art-sessions, "Virtual Art Sessions" Chrome 实验的源.zip

    virtual-art-sessions, "Virtual Art Sessions" Chrome 实验的源 虚拟艺术课程这个库镜像了活动的虚拟艺术会话站点( 代码 NAME 项目 Udon ),并已经打开了Apache许可 2.0,让任何感兴趣的人都可以发现它,看看它是...

    i-Sessions - MetaTrader 5脚本.zip

    在MT5中,“i-Sessions”是一款特别设计的脚本,用于显示和分析全球不同市场的交易会话,这对于全球交易者理解市场动态至关重要。 交易会话是指金融市场在特定时间段内的活跃交易时段。主要的交易会话包括亚洲、...

    Go-Sessions用于http服务器的简单高性能高度可定制的用户会话

    Sessions 用于http服务器的简单,高性能,高度可定制的用户会话

    django-redis-sessions, 在Redis数据库中,用于存储会话的Django 会话后端.zip

    django-redis-sessions, 在Redis数据库中,用于存储会话的Django 会话后端 django-redis-sessions用于你的会话的Redis数据库后端 安装工具可用设置变更日志文件安装运行 pip install django-redis-sessions 或者另外...

    Flask框架重定向,错误显示,Responses响应及Sessions会话操作示例

    主要介绍了Flask框架重定向,错误显示,Responses响应及Sessions会话操作,结合实例形式分析了flask框架中重定向,错误显示,Responses响应及Sessions会话操作相关使用技巧与操作注意事项,需要的朋友可以参考下

    MobaXterm_20.5官方版.zip_sessions99个

    在MobaXterm_20.5官方版中,"sessions99个"可能是指该版本包含了99个预定义或已保存的会话配置。这些会话可能是用户经常访问的不同服务器或网络设备的配置,每个会话都保存了特定的连接参数,如主机名、端口、用户名...

    How to kill terminal server sessions

    Utilities for terminal services: qwinsta and rwinsta

    红鸟Sessions类 v1.0

    红鸟Sessions类,用mysql数据库接管原来由文件系统支撑的php session,解决了session兼容性、虚拟主机无法自定义session等问题,内置gc函数,可以按概率触发删除过期session。...hn_sessions.sql:数据库sql文件;

    开源项目-adam-hanna-sessions.zip

    "adam-hanna-sessions" 的设计理念是使这一过程变得简单,避免复杂的配置,并确保在高负载下仍能保持高效运行。 【标签】"开源项目":这个标签表明"adam-hanna-sessions"是一个开放源代码的项目,意味着它的源代码...

    log-sessions-2021-08-21-041328.session

    log-sessions-2021-08-21-041328.session

    paypal_sessions_viewer_3-02incl-pushorder

    【标题】"paypal_sessions_viewer_3-02incl-pushorder" 指的是一款名为 PayPal Session Viewer 的软件工具,版本号为 3.02,其中包含了 "pushorder" 功能。这款工具主要针对电子商务平台,尤其是使用 Zen Cart 框架...

    在Web Services中管理Sessions

    在Web服务中管理Session是构建可扩展且状态感知的应用程序的关键技术。Web服务通常是无状态的,这意味着每个请求都是独立的,不保留任何上下文信息。然而,有时我们需要跟踪用户会话,例如在购物车应用或个性化服务...

    前端开源库-client-sessions

    "client-sessions"是一个专门针对前端应用的开源库,它旨在提供一种安全且高效的方式来存储和管理用户会话,全部在客户端进行,无需服务器端参与。这个库特别适合那些不希望频繁与服务器交互或需要离线支持的应用...

    log-sessions-2021-09-21-183121.session

    log-sessions-2021-09-21-183121.session

    一个典型的Haproxy_exporter的监控metric例子.txt

    haproxy_backend_current_sessions haproxy_backend_http_connect_time_average_seconds haproxy_backend_http_queue_time_average_seconds haproxy_backend_http_response_time_average_seconds haproxy_backend_...

    sessions:用于会话管理的Gin中间件

    会话 用于会话管理的Gin中间件,具有多后端支持:用法开始使用它下载并安装: $ go get github.com/gin-contrib/sessions 将其导入您的代码中: import "github.com/gin-contrib/sessions"基本范例单节package main...

    怎样查看oracle当前的连接数

    SHOW PARAMETERS sessions; ``` `sessions`参数定义了可以同时打开的最大会话数,这个值通常小于或等于`processes`的值。 #### 方法三:修改连接数限制 1. **临时修改`processes`参数**: ```sql ALTER ...

Global site tag (gtag.js) - Google Analytics