Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10700
  • 博文数量: 6
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 61
  • 用 户 组: 普通用户
  • 注册时间: 2014-08-24 17:40
文章分类

全部博文(6)

文章存档

2014年(6)

我的朋友
最近访客

分类: Python/Ruby

2014-09-22 14:37:52

bundler    gem    plugins

bundler是用来帮助Rails管理gem的,那么管理就包括了安装使用gem。
安装:略
使用:加载
    情况一:
        require 'rubygems'
        require 'bundler/setup' # 加载Gemfile中的所有gem
        require 'sinatra'
    情况二:
        require 'rubygems'
        require 'bundler'
        Bundler.setup(:default, :development)  #只有setup了的group中的gem才会被加载

        require 'sinatra'        
    情况三:
        require 'rubygems'
        Bundler.require(*Rails.groups) # 加载了默认的gem,以及和当前rails环境对应的gem
    注:ruby1.9之后自动加载了‘rubygems’,所以都不需要显示的require ‘rubygems'

plugins
    目前而言,plugins和gem没有必然的联系,但是也可以通过Gemfile来安装。先将代码推到远程仓库
    gem 'yaffle', git: 'git://github.com/yaffle_watcher/yaffle.git'

heredoc

多行字符串
refs: 
<<-EOF
line1
line2
...
EOF

<<-EOF 就像是一个占位符,任何在这行代码之后并且在单独的EOF行之前的内容都将是多行字符串的值

<< vs <<-

如果使用前者,那么你的标识结束的语句必须出现在一行的开头

关于文本插入

refs:
Rails默认情况下,会过滤所有的字符串。当发现有页面元素插入时就认为不是安全的。如果我们仍然想要通过的话,可以有下面两种方式。
一,就是 裸奔
raw
    <%= raw danger_string %>
html_safe
    danger_string.html_safe
<%== danger_string %>
二,就是 设置白名单
<%= santitize danger_string %>

santitize 用法
    一般用法
        <%= santitize danger_string, tags: %w(table tr td), attributes: %w(id class style) %>
    设置默认
       # add
        class Application < Rails::Application
            config.action_view.santitized_allowed_tags = 'table', 'tr', 'td'
            config.action_view.santitized_allowed_attributes = ['id', 'class', 'style']
        end    
        # remove
       class Application < Rails::Application
            config.after_initialize do    
                ActionView::Base.santitized_allowed_tags.delete 'div'
            end

       end

engine

rails plugin new xxx --full/--mountable
--mountable:表示这个engine是命名空间上隔离了的,是可以加载安装的

自动加载路径

三种自动路径:
refs:
    
config.autoload_paths + config.eager_load_paths + config.autoload_once_paths
自动加载必须符合Rails的命名规则
举例:
    config.autoload_paths << Rails.root.join("lib")
    in lib/foo.rb
        class Foo; end
    in lib/foo/bar.rb
        class Foo::Bar; end

不规则命名加载
    你可以在初始化的时候加载
    可以在config/initializers/require.rb中,可以在config/environment.rb中,可以在config/application.rb中
    举例:
        require "#{Rails.root}/lib/extensions"        

关于Rails加载文件

refs:
    



阅读(335) | 评论(0) | 转发(0) |
0

上一篇:vim 常用命令

下一篇:Man Gemfile

给主人留下些什么吧!~~