回顾总结(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