回顾总结(1)

回顾总结(一)

1、系统:ubuntu系统(安装、配置环境 已经熟练掌握)

2、ruby:

        掌握:

              ruby的基础

              ruby以rake任务为主脚本

              ruby链接mysql

        学习:

              ruby 类和模块深层学习

 3、ruby on rails

        rails 掌握:

              rails 新建项目    

              rails 配置mysql数据库  

              rails 整个文件夹的结构 :

                      app:可以说是这个项目目录中最重要的一个,开发过程中大部分时间都是在这个目录。

                      config:配置文件目录,包含数据库、环境、路由等内容。

                      db:数据库相关文件目录。

                      doc:文档目录。

                      log:日志目录。

                      script:存放供rails使用的脚本文件,每次在目录中敲的rails命令就是执行的这个目录下面的rails。

                      test:测试文件存放的目录。

                      temp:临时文件目录。

                      public:对外公开的目录,其他人可以直接访问这个目录中的东西。 与这个目录相对应,app目录中的内容是对外隐藏的。

                                  下面是三个与项目依赖相关的文件和目录,因为在Rails中有三种主要方式使得项目对其他项目或第三方工具库设定依赖关系。

                      genfile:配置这个项目依赖的gem包。

                      lib:项目内部需要共享的代码。

                      vendor:存放第三方库或代码。

              rails插件:

                      登录验证:Devise 是一个Rails上基于Warden,灵活的认证方案,用于实现系统-注册登录功能 是一个完整的MVC模式的解决方案,

                      可以满足不同角色同时登录系统,而且是基于模块化设计的。

                      分页管理:编辑GemFile,添加一行:gem ‘will_paginate’ 。

                                       你要在控制器添加分页(controller文件),如下:

                                       @products = Product.paginate(:page => params[:page], :per_page => 10, :order => 'updated_at DESC')  

                                        视图文件(erb文件)添加:

                                        <%=will_paginate(@products, :prev_label=>'Previous', :next_label=>'Next', :separator=>" | ") %> 

                       搜索:安装thinking-sphinx,在Gemfile中添加下面代码:  gem 'thinking-sphinx' 

                                  配置在config下新建一个文件sphinx.yml,里面添加如下代码: 

                                  development:

                                  port: 9312

                                  bin_path: /usr/local/coreseek/bin

                                  searchd_binary_name: searchd

                                  indexer_binary_name: indexer

                                #  charset_type: utf-8

                                  charset_dictpath: <%=::Rails.root.to_s+"/data/fulltext_dict"%>

                                  charset_type: zh_cn.utf-8

                                  max_matches: 10000

                                test:

                                  port: 9313

                                  bin_path: /usr/local/coreseek/bin

                                  searchd_binary_name: searchd

                                  indexer_binary_name: indexer

                                  charset_type: utf-8

                                production:

                                  port: 9312

                                  bin_path: /usr/local/coreseek/bin

                                  searchd_binary_name: searchd

                                  indexer_binary_name: indexer

                                  charset_type: utf-8

                                  max_matches: 10000

                                  运行:

                                  rake ts:start  ##起服务 

                                  rake ts:stop   ##停服务 

                      rails接口:

                              Active Record 查询

                                  使用多种方法和条件表达式来查找数据

                                  对查找到的数据进行排序,分组,取用字段值或者其它属性值

                                  利用预加载来减少数据检索时执行的数据库查询次数

                                  使用动态查找方法

                                  检查记录的存在性

                                  针对 Active Record 的 model 对象的统计方法  

                               关于 rails-sql 方法(根据参数生成相应的 SQL 查询语句): 

                               where、select、group、order、reorder、reverse_order、limit、

                                offset、joins、includes、 lock、readonly、from、having  

                             routes 路由:

                                提交方式:GET、POST、PUT、DELETE 

                                关键字:resource(它会为你的应用建立六个不同的 routes,都将匹配到相应的控制器)。例子:resources :users

                                              nameplace(命名空间:你可以想要把一些同类的控制器组织到一个命名空间下面管理)。 例子:namespace :admin do resources :users end 

                                              Member(成员路由:当你想用除了默认的这些路由,你还可以用member)。

                                                            例子:resources :users do

                                                                        member do

                                                                          get 'setting'

                                                                        end

                                                                      end

                                                             得到url : users/1/setting    

                                               Collection (集合路由:你还可以用collection) 

                                                           例子:resources :posts do

                                                                        collection do

                                                                          get 'search'

                                                                        end

                                                                      end

                                                             得到url : users/search   

                                              Member和Collection的区别,Member是属于单一结果的操作,Collection是对所有的进行操作。

                                              match (我要写个单一的url,与其他没有太大关联,可以用match,当然也可以写上面的url)。例子:match ‘users/search’       

                             rails接口:route + controller + model(查询) + json/xml                   

        学习:

                框架:

                         rails 的Activeecord 的生命周期

                         如何把方法尽可能的写如model中,使得代码重复使用。

                         查询效率(消除N+1查询问题)。                                   

                插件:

                登录验证:Devise 的邮件验证

                文件上传插件: carrierwave 

                        使用、上传到的图片效果

 4、网页展现:javascript、css

           掌握: javascript 编辑独立方法

                      css 基本属性

            学习:javascript 组件编程思想。

                      css 组件的编程与复写

                      

 5、学习:rails项目的部署与维护  

            安装Apache+Passenger指令如下:

                   代码:  

                      $ sudo apt-get install -y apache2-mpm-prefork apache2-prefork-dev libapr1-dev libaprutil1-dev libcurl4-openssl-dev

                      $ sudo gem install passenger

                      $ sudo passenger-install-apache2-module     

                   设置:

                   例如:

                          <VirtualHost *:80>

                             ServerName www.yourhost.com

                             DocumentRoot /somewhere/public

                             <Directory /somewhere/public>

                                AllowOverride all

                                Options -MultiViews

                             </Directory>

                          </VirtualHost>     

                   重新启动Apache:                           

                         $ sudo apache2ctl restart