`
helloqidi
  • 浏览: 12245 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

beast学习笔记——2,forums_controller

    博客分类:
  • ROR
阅读更多

beast学习笔记——2,forums_controller

参考

 
 
 
1,
(1)代码:
before_filter :admin_required, :except => [:index, :show]
(2)表示:
前置过滤器,对index,show方法除外
(3)其他:
admin_required方法存储在哪里?在forums_controller、application_controller中都没有,但是application_controller中有一个include AuthenticatedSystem,于是到 /lib目录中authenticated_system.rb,里面有定义
 
2,
(1)代码
session[:forums_page] = nil
(2)表示:
当进入显示所有项index方法时,清空session中存储的页数forums_page
(3)其他
session存储在哪里?可以看看enviroment.rb中的”config.action_controller.session_store“,常用的是三种:
【1】rails2以上的版本,默认把session放在基于cookie的客户端中即session以 hash的格式每次作为cookie发送到客户端浏览器来保持
rails1版本默认是CGI:Session:PStore,存储在服务器上的一个PStore格式的文件中。
【2】:action_record_store,存储在数据库session表中。
【3】:drb_store,存储在一个DRb服务器上。
注:当我们向一个域名发送一个请求的时候,如果存在这个域名的cookie,浏览器会自动把cookie附带上。
3
(1)代码
@forums = current_site.ordered_forums
(2)表示
创建forums实例变量,存储什么?为什么不是标准的 @forums = Forum.find( :all, : order => "position"),
【1】这里有一个当没有站点时的转向问题(其实在安装beast时rake app:bootstrap已经引导你建立站点了)。
可以导到current_site在/lib目录中authenticated_system.rb里面有定义:
def current_site
      @current_site ||= Site.find_by_host(request.host) or raise Site::UndefinedError
end
 
这个方法是先是用||= 看@current_site有没有值,如果没有就用Site.find_by_host(request.host)获取一个值赋给@current_site(这里request.host是会得到主机的名称,我在本机上运行,这会得到localhost),如果Site里还没有这个值,就再执行 raise Site::UndefinedError。

这个异常应该是自定义的。打开Site模型文件app/model/site.rb,就会看到
class UndefinedError < StandardError; end
这一行,原来UndefinedError是继承至StandardError类。

异常被抛出来,就得处理它。其实,我们之前在浏览application_controller.rb代码,就发现了一个rescue_from方法:
rescue_from Site::UndefinedError do |e|
    redirect_to new_site_path
end

看到这里,我想都明白为什么在第一次运行Beast时,会重定向到新建站点的页面了。
【2】.ordered_forums表示什么,见site.rb中的:
  def ordered_forums(*args)
    forums.ordered(*args)
  end
再见forum.rb中的:
  def self.ordered
    find :all, :order => 'position'
  end
于是,.ordered_forums表示查询forum并按照position排序
4,
(1)代码
    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @forums }
    end
(2)表示
表示,当HTTP首部的Accept-Type要求返回的类型为text/html时,view指向默认的index.html。当要求返回的类型为xml/text时,view将会指向一个xml,此xml由模型forum自动生成
分享到:
评论

相关推荐

    EA Beast_v2.9_ea_

    标题中的"EA Beast_v2.9_ea_"和描述中的"EA Beast_2.9"都提到了一个名为"EA Beast"的软件版本,这里的"EA"通常在金融交易,尤其是外汇交易(Forex)领域中代表“Expert Advisor”,即智能交易系统或自动交易机器人。...

    Beast Super Signal Grail_grail_forex_trading_

    《Beast Super Signal Grail:探索自动外汇交易的精粹》 在外汇交易的世界中,技术分析工具扮演着至关重要的角色。"Beast Super Signal Grail"是一个专为MetaTrader 4(MT4)平台设计的高级指标,旨在帮助交易者更...

    beAst音频小组内部教程_初级第一版

    ### beAst音频小组内部教程知识点汇总 #### 一、国语音轨的来源 国语配音音轨,简称国语音轨,是音轨的一种。音轨通常包括原声音轨、配音音轨(包括国语音轨)、字幕文件等。本文主要讲述了国语音轨的两大来源: ...

    Beast-Super-Signal_super_indicator_mt4indicator_mt4_beastsupersi

    【标题】"Beast-Super-Signal_super_indicator_mt4indicator_mt4_beastsupersi" 指的...最后,持续学习和实践是提升交易技巧的关键,而"BEAST SUPER SIGNAL"仅是交易者工具箱中的一种工具,不应被视为确保盈利的保证。

    beast加密扩展Windows DLL

    2. 下载并解压"php-beast-binaries-master"压缩包,找到适用于你当前环境的DLL文件。 3. 将DLL文件复制到PHP的扩展目录(例如,`php/ext`)。 4. 修改php.ini配置文件,添加或启用`extension=beast.dll`行。 5. 重启...

    TB+Beast_deZenderphp.ini_dezender_

    标题 "TB+Beast_deZenderphp.ini_dezender_" 暗示这是一个与 PHP 相关的项目,其中可能包含解码或处理 Zender 类的工具。描述 "decoder fo zender class php" 明确指出这是一个用于解码 Zender 类的 PHP 解码器。...

    uWebSockets-master.zip_beast websocket_uwebsocket_uwebsockets编译_

    标题中的“uWebSockets-master.zip”表明这是一个与uWebSockets相关的源代码压缩包,而“beast websocket”指的是Boost Beast库,它是一个用于处理HTTP和WebSocket协议的C++库。"uwebsocket"和"uwebsockets"可能是...

    windows下编译php­beast扩展

    2. 解压PHP-beast扩展源码到指定目录,并重命名为便于识别的名称。 3. 删除PHP源码中不必要的扩展,只保留需要的扩展。这样做可以加快编译过程。 4. 生成configure脚本:这是编译过程中的关键步骤之一,通常需要...

    BEAST计算分化时间

    ### BEAST计算分化时间知识...通过本教程的学习,初学者可以快速上手,并能够运用BEAST解决实际问题,如估算物种分化时间、进化速率等。掌握BEAST不仅有助于深入理解生物进化的机制,还能够在科学研究中发挥重要作用。

    beast2, 基于抽样树的贝叶斯进化分析.zip

    beast2, 基于抽样树的贝叶斯进化分析 Beast 2 Beast 是一种基于分子序列MCMC的贝叶斯推理交叉平台程序。 它完全向根的方向推导,时间测量phylogenies使用严格或者松松的分子时钟模型推断出来。 它可以以作为一种重构...

    php-beast_liexusong.tar.gz

    《PHP源码加密模块——深入理解php-beast_liexusong.tar.gz》 在Web开发领域,PHP作为一种开源、跨平台的脚本语言,因其简洁、高效的特点被广泛应用。然而,随着互联网安全问题日益凸显,如何保护PHP源码不被轻易...

    PHP源码加密工具(php-beast)php7版 v1.0

    wget https://codeload.github.com/liexusong/php-beast/zip/php7$ unzip php-beast-php7.zip$ cd php-beast-php7$ phpize$ ./configure$ sudo make && make install2)修改php.ini 添加配置:extension=beast.so3)...

    BEAST v1.8.2.rar

    2. **分子钟模型**:BEAST支持多种分子钟模型,如严格的分子钟模型和松弛的分子钟模型,适应不同类型的进化速率变化。 3. **种群动态模型**:用户可以选择不同的种群动态模型,如常规模型、指数增长模型或指数衰减...

    Beast2.07 软件

    Beast2.07软件 Beast2.07软件 Beast2.07软件

    基于Boost.Beast构建的易于使用的HTTP(S)客户端.zip

    2. **连接服务器**: 使用`boost::asio::ip::tcp::resolver`解析服务器的域名或IP地址,获取对应的socket地址。然后,使用`boost::asio::ssl::stream`或`boost::asio::ip::tcp::socket`建立到服务器的连接。 3. **...

    PHP源码加密模块php-beast.zip

    PHP Beast是一个源码加密模块,使用这个模块可以把PHP源码加密并在此模块下运行。 ... 2)使用beast模块的时候: 可见, 使用缓存的beast模块比原来还要快一点. 标签:phpbeast

    beast源代码下载

    "Beast源代码下载"指的是获取并安装名为Beast的开源软件项目,它与Rails开源论坛相关。Beast,全称可能为“BioBayes Evolutionary Analysis Toolkit”或类似的名称,是一个专门用于生物信息学领域,尤其是进化分析的...

    frombeast1:将beast1模型导入到beast2

    【标题】:“从BEAST1到BEAST2:模型迁移指南” 在生物信息学领域,BEAST(Bayesian Evolutionary Analysis Sampling Trees)是一款广泛应用的软件,用于进行分子钟建模和种群动态分析。该软件提供了多种统计方法来...

    A Rough Guide to BEAST 1.4

    BEAST是一个基于贝叶斯MCMC(马尔可夫链蒙特卡洛)分析的跨平台分子序列分析程序,其设计目标是用于推断具有根的、基于严格或松弛分子钟模型的时间测定的系统发育树。BEAST不仅是一个重建系统发育树的方法,也是一个...

Global site tag (gtag.js) - Google Analytics