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

beast学习笔记——5,_head.html.erb

    博客分类:
  • ROR
阅读更多

  beast学习笔记——5,_head.html.erb

参考:
1,
(1)代码
<title>
<%=h @current_site && current_site.name || I18n.t('txt.beast_title', :default => 'Altered Beast') %>
<%= " - #{h @page_title}" if @page_title %>
</title>
(2)表示
【1】current_site从何而来?
找application_controller.rb,得知它来自被include的AuthenticatedSystem中。再看authenticated_system.rb,发现代码:
# Inclusion hook to make #current_user and #logged_in?
# available as ActionView helper methods.
def self.included(base)
  base.send :helper_method, :current_user, :logged_in?, :current_site, :admin?, :moderator_of? if base.respond_to? :helper_method
end
 
其中,self.included这个函式表示:模块AuthenticatedSystem被include时执行。因为是在application_controller.rb中include的AuthenticatedSystem,所以,每个controller执行时,都会执行self.included方法,所以,每个ActionView都可以使用相应的信息。
其中,send 方法指定方法名称,并调用某个对象的方法。
【2】I18n.t('txt.beast_title', :default => 'Altered Beast')
I18n是从自Rails2.2引入的,用于支持多国语系,对应的语系文档放在 /config/locales 下,使用 yml 格式,默认是en.yml。它的相关应用可以参见http://guides.ruby.tw/rails3/i18n.html
default方法,表示:当txt.beast_title这个key在yml中找不到键值时,显示“Altered Beast”。
【3】@page_title从何而来??未知??????
 
2、
(1)代码
  <%= stylesheet_link_tag 'display' %>
  <%= stylesheet_link_tag 'captcha' %>
(2)表示
表示调用了css样式文件,默认存储位置为:\public\stylesheets
 
3
(1)代码
  <%= javascript_include_tag "prototype", "effects", "lowpro", "time", "application", :cache => "beast" %>
(2)表示
【1】表示调用了js文件,默认存储位置为:\public\javascripts
【2】cache表示什么?我们可以把多个js文件存储在一个文件中进行缓存,以减少HTTP连接数。此缓存只有在设置ActionController::Base.perform_caching为true时才起作用。perform_caching在config\environments文件夹下的development.rbproduction.rbtest.rb文件中,默认情况下,development、test下为false,production下为true。development中的代码为:
config.action_controller.perform_caching = false
具体的区别如下:

  javascript_include_tag :all, :cache => true #
when ActionController::Base.perform_caching is false =>    <script type="text/javascript" src="/javascripts/prototype.js"></script>    <script type="text/javascript" src="/javascripts/effects.js"></script>    ...    <script type="text/javascript" src="/javascripts/application.js"></script>    <script type="text/javascript" src="/javascripts/shop.js"></script>    <script type="text/javascript" src="/javascripts/checkout.js"></script>  javascript_include_tag :all, :cache => true # when ActionController::Base.perform_caching is true =>    <script type="text/javascript" src="/javascripts/all.js"></script>

javascript_include_tag "prototype", "cart", "checkout", :cache => "shop"
# when ActionController::Base.perform_caching is false =>    <script type="text/javascript" src="/javascripts/prototype.js"></script>    <script type="text/javascript" src="/javascripts/cart.js"></script>    <script type="text/javascript" src="/javascripts/checkout.js"></script>javascript_include_tag "prototype", "cart", "checkout", :cache => "shop" # when ActionController::Base.perform_caching is true =>    <script type="text/javascript" src="/javascripts/shop.js"></script>
 
4(1)
代码
<% unless @feed_icons.blank? -%>
  <% @feed_icons.each do |feed| -%>
  <%= auto_discovery_link_tag :atom, feed[:url], :title => "Subscribe to '#{feed[:title]}'" %>
  <% end -%>
<% end -%>
(2)表示
【1】@feed_icons从何而来?来自helper方法feed_icon_tag,在文件application_helper.rb中
【2】auto_discovery_link_tag,生成一个link标签使浏览器可以使用RSS或ATOM(ATMO可以理解为是对RSS的完善)订阅。通过查看源码,可以发现链接到的控制器为post。
实例:
auto_discovery_link_tag # =>   <link rel="alternate" type="application/rss+xml" title="RSS" href="http://www.currenthost.com/controller/action" />
 
auto_discovery_link_tag(:atom) # =>   <link rel="alternate" type="application/atom+xml" title="ATOM" href="http://www.currenthost.com/controller/action" />
 
auto_discovery_link_tag(:rss, {:action => "feed"}) # =>   <link rel="alternate" type="application/rss+xml" title="RSS" href="http://www.currenthost.com/controller/feed" />
 
auto_discovery_link_tag(:rss, {:action => "feed"}, {:title => "My RSS"}) # =>   <link rel="alternate" type="application/rss+xml" title="My RSS" href="http://www.currenthost.com/controller/feed" />
 
auto_discovery_link_tag(:rss, {:controller => "news", :action => "feed"}) # =>   <link rel="alternate" type="application/rss+xml" title="RSS" href="http://www.currenthost.com/news/feed" />
 
auto_discovery_link_tag(:rss, "http://www.example.com/feed.rss", {:title => "Example RSS"}) # =>   <link rel="alternate" type="application/rss+xml" title="Example RSS" href="http://www.example.com/feed" />
 
5
(1)代码
<link rel="search" type="application/opensearchdescription+xml" href="http://<%= request.host_with_port %>/open_search.xml" />
(2)表示
添加搜索栏,通过查看源码,得知生成的代码如下:<link rel="search" type="application/opensearchdescription+xml" href="http://localhost:3000/open_search.xml" />
但是,beast并没有open_search.xml啊??????
 
6
(1)代码
<%= link_to_function I18n.t('txt.search', :default => 'Search'), "#", :href => root_path, :id => 'search-link' %>
(2)表示
link_to_function,会生成一个附有onclick事件的链接,在事件结束后return false(虽然点击该链接的时候不会跳转页面.但是滚动条会往上滚,解决的办法是返回一个false)。上述代码会生成:
<a href="/" id="search-link" onclick="#; return false;">Search</a>
其他例子:
link_to_function "Greeting", "alert('Hello world!')"
 Produces:
     <a onclick="alert('Hello world!'); return false;" href="#">Greeting</a>
 
7
(1)代码
<%= link_to I18n.t('txt.signup', :default => 'Signup'), signup_path(:to => CGI.escape(request.request_uri)) %>
(2)表示
上述代码会生成:
<a href="/signup?to=%252F">Signup</a>
首先,了解一下CGI.escape的作用,它用于处理URL中的特殊字符
其次,了解一下模版view的运行环境:控制器中的所有实例变量;通过访问子方法访问控制器中的flash、headers、params、request、response、session对象;通过controller属性可以访问当前控制器;通过base_path属性可以访问当前模板的根路径。
 
8、
(1)代码
  <% name = (site = @current_site || Site.first) && site.name %>
  <h1><%= link_to name || I18n.t('txt.beast_title', :default => 'Altered Beast'), root_path %>
(2)表示
暂时的理解,设置变量name并赋值,再建立Beast名称的链接。

 

分享到:
评论

相关推荐

    TB+Beast_deZenderphp.ini_dezender_

    5. **Beast.php**:很可能是一个包含了名为 Beast 的 PHP 类,可能是解码器的核心部分。 6. **TB.php**:可能是一个辅助类或者与 Beast 类相关的工具,TB 可能是 "Template Beast" 或者其他含义。 7. **TB....

    php-beast_liexusong.tar.gz

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

    beast加密扩展Windows DLL

    4. 修改php.ini配置文件,添加或启用`extension=beast.dll`行。 5. 重启你的Web服务器(如Apache或IIS),使配置更改生效。 6. 最后,你可以通过运行`php -m`命令检查BEAST扩展是否成功加载,或者在PHP代码中使用`...

    beast_training_web.github.io

    beast_training_web.github.io

    Beauty_and_the_Beast.pdf

    根据给定的信息,“Beauty_and_the_Beast.pdf”这个文件似乎并不是关于《美女与野兽》的故事或电影,而是借用了“美与兽”的概念来探讨人类的独特性和成就。标题和描述均未提供具体线索,但从标签“善与恶”以及部分...

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

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

    php_beast.dll

    php7.3.4 window的php-beast.dll,php-beast项目,文件加密,可联系我获取更高的php版本扩展dll

    信息安全_数据安全_IPv666_–_Address_of_the_Beast.pdf

    信息安全_数据安全_IPv666_–_Address_of_the_Beast 安全评级 安全运营 威胁检测 安全风险 APT

    APP_for_Mac_GS_2A.pdf

    根据提供的文档信息,我们可以总结出以下相关知识点: ### 一、AppleCare Protection Plan 概述 **AppleCare Protection Plan** 是苹果公司推出的一种延长保修服务计划,为用户提供超过标准保修期的服务和支持。...

    windows下编译php­beast扩展

    5. 配置编译选项:通常可以通过简单的configure命令来实现。需要注意的是,如果在编译过程中遇到bison.exe工具缺失的提示,则需要将其所在目录添加到系统的环境变量中,然后重新执行configure命令。 6. 编译PHP:...

    program-Indicator-SysMonitor_0.8.3_i386.deb

    ubuntu18、20测试通过。 可以在顶上任务栏显示各种资源使用情况,比如cpu、内存、网速、硬盘io。 可以用sudo dpkg -i 文件名.deb来安装,也可以直接双击安装。 基于python开发的,有兴趣可以自己修改里面代码来实现...

    Beast-Super-Signal_super_indicator_mt4indicator_mt4_beastsupersi

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

    BEAST v1.8.2.rar

    **BEAST v1.8.2 - 贝叶斯进化分析工具详解** **一、BEAST简介** BEAST(Bayesian Evolutionary Analysis Sampling Trees)是一款广泛应用在分子进化研究中的软件,版本为v1.8.2。它利用贝叶斯统计方法来估计物种...

    downloads.part1.rar

    atomic-boost-1.70.0.tar.gz boostorg-beast-boost-1.70.0.tar.gz boostorg-bimap-boost-1.70.0.tar.gz boostorg-bind-boost-1.70.0.tar.gz boostorg-build-boost-1.70.0.tar.gz boostorg-callable_traits-boost-...

    计算机专业英语模拟试题2.pdf

    beast 答案:A. program 解释:病毒(virus)是一种恶意软件程序。 【语法部分】 1、With Windows, you can run several powerful applications at once and switch quickly ____ them. 答案:B. among 解释:在...

    php-beast-master.zip

    php代码加密扩展 完安装php-beast后可以使用tools目录下的encode_files.php来加密你的项目使用。encode_files.php之前先修改tools目录下的configure.ini文件

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

    5. **接收响应**: 使用Boost.Beast的`read`函数异步读取服务器返回的HTTP响应。响应同样是一个`boost::beast::http::response`对象。 6. **处理响应**: 解析响应体,根据业务需求处理数据。完成后,关闭连接。 7. ...

    EA Beast_v2.9_ea_

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

    BBC.The.World.At.War.1973.EP01-EP26.BluRay.720p.DTS.x264-beAst

    BBC.The.World.At.War.1973.EP01-EP26.BluRay.720p.DTS.x264-beAst

Global site tag (gtag.js) - Google Analytics