自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

边晓宇@CSDN

与cnblog博客同步更新http://www.cnblogs.com/abbuggy/

  • 博客(93)
  • 资源 (11)
  • 收藏
  • 关注

原创 Sublime中增加格式化代码的快捷键

其实sublime自身就有格式化命令,就不再安装插件,位置在[Edit]->[Line]->[Reindent]但这个默认的命令没有快捷键,就重新定义了一下,想用习惯了的eclipse快捷键:Ctrl+Shift+F但是和“在文件中查找”冲突了。改用Alt+Shift+F吧,和netbeans保持一致。[Preferences]->[Key Bindings]->[User]中,添加如下:

2013-06-16 16:41:33 142790 2

原创 Ubuntu中把窗口的菜单从顶部工具条挪回窗体本身,禁用全局菜单(global menu)

Ubuntu不知道从哪个版本开始,窗口的菜单统一跑到屏幕最上方的去了,叫做全局菜单。这种方式对小显示器确实是挺好的,省了不少地方,但是对于大显示器,窗口不全屏的情况太多,这种方式对不全屏的窗口很不友好。因为鼠标需要跑好远才能到菜单栏。1.打开终端:sudo apt-get autoremove appmenu-gtk appmenu-gtk3 appmenu-qt完

2013-06-16 13:58:26 15214

翻译 RailsCasts中文版,#25 SQL Injection 谨防SQL注入

接下来的几篇,我们会讨论一些关于安全的话题,以免你的站点频频遭受黑客的攻击。其中第一个基本安全原则就是永远不要信赖来自用户的输入。在Rails中来讲就是说,从页面参数中传递进来的数据一定要小心对待。用户可以有意的设置参数值,甚至可以设置参数键,所以得谨慎的使用。这个原则对于cookie数据也同样适用。而会话数据中的内容是由我们的程序控制的,可以放心使用。所有安全问题中,SQL注入是最最臭名昭著

2013-06-04 22:29:29 4117 1

翻译 RailsCasts中文版,#24 The Stack Trace 利用异常堆栈调试问题

程序运行中难免遇到异常,当系统抛出异常后,Rails会显示如下的一个页面。在开发过程中你经常会看到。显示异常信息的页面。这个页面中列出错误信息及异常堆栈。第一眼看过去可能有点晕,不过这些信息会为你定位问题提供很大的帮助(页面比较长,截图是其中的一部分)。在具体分析眼前这个错误之前,先介绍一下什么是异常堆栈。什么是异常堆栈?在irb中,我们抛出一个异常。Ruby框架会根据

2012-12-23 11:44:40 3318

翻译 RailsCasts中文版,#23 Counter Cache Column 计数器缓存字段

和上一篇一样,咱们聚焦于ActiveRecord数据库查询性能这个话题。如下图所示,页面列出一系列项目(Project)以及其中包含的任务(Task)数。以下是ProjectsController和index.html.erb。class ProjectsController < ApplicationController def index @projects = Pro

2012-12-12 01:14:21 4674

翻译 RailsCasts中文版,#21 Super Simple Authentication 一个简单的认证实现

在上一篇中,演示了如何根据当前登陆的用户是否具有管理员权限来显示或隐藏指向文章管理的链接。实现方式是通过在ApplicationController中增加一个admin?方法,如果方法返回true则显示,否则隐藏这些链接。接下来是如何实现这个方法的逻辑,应该是根据登陆用户的情况决定是否显示。有多种实现方法可以通过多种方式来实现一个登陆系统。可以从模型到界面自己开发一套,当然可以借助于一个名

2012-12-10 22:28:09 3209

翻译 RailsCasts中文版,#22 Eager Loading 贪婪加载(级连查询)

要想试图优化你的Rails应用,首先应当把目光投向数据库访问操作。减少对数据库的访问次数能对应用的运行效率产生巨大的提升作用。下面来介绍一种叫做贪婪读取的技术这个示例应用包含两个模型分别是任务(Task)和项目(Project)图中的页面列出了一系列任务以及每个任务所属于的项目。在TaskController代码里便利所有的任务,在视图中通过循环将他们一一列出。Tasks

2012-12-09 19:16:14 4282

原创 Ruby on Rails,一对多关联(One-to-Many)

在上一篇文章中,我们知道通过has_one和belongs_to方法定义一对一关联关系。接下来是更常见的情况,一对多关联。比如老师与所教课程的关系,一个老师负责多个课程。换成对象之间的关系就是:一个老师has may课程,课程belongs to老师。

2012-12-09 13:34:02 11560

原创 通过非本机访问MySQL报 ERROR 2003 和 ERROR 1130 问题解决方法

环境如下MySQL安装在192.168.137.100 Ubuntu 12.04 LTS客户端在 192.168.137.200 win7客户端希望访问MySQL数据库,会出现如下错误“ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.137.100' (10061)”C:\>mysql -h

2012-12-08 13:58:49 7696

原创 Ruby on Rails,一对一关联(One-to-One)

在上一篇文章中,我们列举了对象之间可能出现的关联关系。接下来,逐个分析一下每一种关系如何在Ruby on Rails中实现和使用。场景1:一对一关联一般用于一个东西A有且只有一个B,比如    雇员 has_one:电脑    教室 has_one:老师他们的特点是,对象之间存在唯一的拥有关系。如果一个雇员也可以有多台电脑,不过这就不是今天的话题了,那是一对多关系(On

2012-12-08 11:22:36 7220

原创 Ruby on Rails,一次讲透对象之间的关联关系,永远忘不了

在之前的多篇文章中,我们学会了针对单个模型的数据库单表增删改查操作。很显然这种简单的逻辑是满足不了实际需要的。通常情况下,我们需要建立多个相互关联的对象,使用相互关联的表进行数据存储。对于一个CMS系统来说,一篇文章可能有多个标签。想要显示文章的标签,最原始的作法是:根据文章的id查询查询数据库得到文章对象后,根据其中存储的标签id列表,再进行一次数据库查询得到这篇文章拥有的所有标签对象。这种

2012-12-02 15:52:38 7727 2

翻译 RailsCasts中文版,#20 Restricting Access 为页面增加权限校验2

限制访问权限在上一篇中,我们在文章列表页增加了编辑和删除操作的连接,暂时还没有进行访问控制;以至于所有访问者都能看到并进行操作。本应是管理员看到的按钮对所有人可见了。下面为这些按钮增加权限,在连接元素外面包一个edit方法的调用,只有返回true了才可见。 Tags: "Are you sure?",

2012-12-01 20:59:31 1963

翻译 RailsCasts中文版,#19 Where Administration Goes 为页面增加权限校验1

接下来的三讲中,我来介绍一种为站点增加管理员权限的最佳实践。最初的时候(如上图所示),页面没有进行文章管理的能力;所有操作都是在Rails Console通过命令行或更土一点直接修改数据库完成的。后来的版本里为站点增加了通过页面操作进行管理的能力,不过是开发独立的管理页面方式实现。这种实现方式肯定是可以用的,但肯定不是最好的方案,因为这当中存在大量重复的劳动。比如说文章列表,首

2012-12-01 20:23:46 1919

原创 apache服务器安装以及使用passenger插件部署rails应用,基于ubuntu 12.04 LTS

小例子可以部署在rails自带的WEBrick上,逐渐往后走还得上Apache。安装apache服务器命令是sudo apt-get install apache2安装passenger插件安装完毕还不能立刻用,因为想运行rails应用的话,还要为apache服务器安装插件passenger。passenger是一个gem包,安装命令是gem install passeng

2012-12-01 12:51:13 7911 1

原创 忘记MySQL root密码解决方法,基于Ubuntu 12.04 LTS

忘了mysql密码,从网上找到的解决方案记录在这里。编辑mysql的配置文件/etc/mysql/my.cnf,在[mysqld]段下加入一行“skip-grant-tables”。重启mysql服务abbuggy@abbuggy-ubuntu:~$ sudo service mysql restartmysql stop/waitingmysql start/ru

2012-12-01 00:20:25 10146 2

翻译 RailsCasts中文版,#16 Virtual Attributes 虚拟属性

下面是一个用户注册表单,可以输入名、姓和密码。数据库中也定义了这些字段:create_table "users", :force => true do |t| t.string "first_name" t.string "last_name" t.string "password" end但是,如果我们想改变用户

2012-11-25 20:45:44 2609

翻译 RailsCasts中文版,#15 Fun with Find Conditions 使用hash为查询条件以便生成正确语法的SQL查询

这次我们来讨论一下关于find方法查询条件的话题。以下是Rails Console输出的SQL查询语句。对应的动作是查找所有优先级为3的未完成任务。>>Task.count(:all,:conditions=>["complete=? and priority=?,false,3])=>2对应的SQL查询是SELECT count(*) AS count_all FR

2012-11-25 11:32:39 2401

翻译 RailsCasts中文版,#14 Performing Calculations on Models 利用模型自带的统计功能

你知道吗?ActiveRecord预制了好多对模型中数据进行统计计算的方法。我们拿Task类为例。类中有一个标明任务优先级的字段priority。打开Rails Console,查看操作的回显,其中SQL语句是方法在后台执行的查询。查询第一个任务的优先级:>> Task.first.priority=>4对应的SQL查询是SELECT * FROM "task

2012-11-24 23:23:04 1859

翻译 RailsCasts中文版,#13 Dangers of Model in Session 不要在会话中缓存模型实例

//占位待补齐

2012-11-24 23:21:45 1814

翻译 RailsCasts中文版,#12 Refactoring User Name Part 3 重构实战3

在重构实战2和重构实战1里,我们讨论了与重构、测试有关的话题。截止上一篇结束时,完成了对User类的重构,但是测试用例代码还有些乱。让我们看看如何清理一下。require 'test_helper' class UserTest < ActiveSupport::TestCase test "full name without middle initial" do

2012-11-24 09:00:49 2051

翻译 RailsCasts中文版,#11 Refactoring User Name Part 2 重构实战2

在上一篇《RailsCasts中文版,#10 Refactoring User Name Part 1 重构实战1》我们讨论了重构,并演示了一个通过将代码移动到模型中以达到去除冗余的重构实例。不过这段代码依然还有优化的余地。class User < ActiveRecord::Base def full_name name = first_name + ' ' na

2012-11-20 22:53:10 2115

翻译 RailsCasts中文版,#10 Refactoring User Name Part 1 重构实战1

从这一集开始,我们一起探讨一下关于重构的话题。重构是指在不改变软件功能的前提下对代码进行优化,以达到去除冗余代码、提高代码可读性及可维护性的的目的。下面页面是一个用户列表,点击用户名后显示用户资料。需要注意的是,有些用户有中间名(middle name)有些则没有。浏览器中显示的列表页及用户资料页.先看看列表页的代码:Users ">

2012-11-19 22:57:31 1818

翻译 RailsCasts中文版,#9 Filtering Sensitive Logs 遮盖日志中记录的敏感信息

这是一个用户注册页面,填入用户名和密码按确认提交。查看后台日志的话,能够发现所有页面提交的参数都是以明文方式保存在日志中的。Processing UsersController#create (for 127.0.0.1 at 2009-01-02 10:13:13) [POST]Parameters: {"user"=>{"name"=>"eifion", "passw

2012-11-19 22:13:48 1526

翻译 RailsCasts中文版,#8 Layouts and content_for 使用content_for方法定制布局文件

下面分别是全局的布局文件application.rhtml及index Action页面定义:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> Todo List

2012-11-18 21:52:16 2445

翻译 RailsCasts中文版,#7 All About Layouts 页面关联布局文件

这次咱们聊聊页面布局文件。布局文件其实也是一个页面,用来定义一些公共的或者框架的页面结构。普通的页面文件再嵌入到布局文件预留的空间中来形成整个页面的样子。布局文件是可以在各个页面之间公用的公共资源。全局范围布局文件下面的页面列出所有的项目名称Projects 这是一个普通页面:比如说,我们想为这个站点的每一个页面都增加一个页首、图标、

2012-11-18 12:15:39 2251

翻译 RailsCasts中文版,#6 Shortcut Blocks with Symbol to_proc 通过to_proc为代码块逻辑命名

下面代码find方法中这种看起来奇怪的语法,一个&符号后面跟着一个名字,叫做to_proc。是Rails对Ruby的一点功能扩充。class Project < ActiveRecord::Base has_many :tasks def self.all_names find(:all).collect(&:name) endend我们通过Rails Cons

2012-11-18 10:55:07 1381

翻译 RailsCasts中文版,#5 Using with_scope 对find方法限定作用域

这次,我们讨论一下with_scope方法。下面的Task中定义了一个返回所有未完成任务的类方法find_incomplete。class Task < ActiveRecord::Base belongs_to :project def self.find_incomplete find_all_by_complete(false, :order => 'created

2012-11-18 01:27:22 1836

翻译 RailsCasts中文版,#4 Move Find into Model 将查询方法从控制器上移至模型

这个例子是对Task调用find命令进行查询操作,查询所有未完成的任务并按照创建时间降序排列。如下所示:class TaskController < ApplicationController def index @tasks = Task.find_all_by_complete(:false, :order => "created_at DESC") endend

2012-11-17 20:40:34 1700

翻译 RailsCasts中文版,#3 Find Through Association 使用级联查询

这个例子中我们有一个Project类,其中通过has_many方法定义包含多个Task:class Project < ActiveRecord::Base has_many :tasksend在Task任务类中通过belongs_to定义它属于一个Project:class Task < ActiveRecord::Base belongs_to :projec

2012-11-17 10:46:47 1942

翻译 RailsCasts中文版,#2 Dynamic find_by Methods 使用动态的find_by方法进行查找操作

下面给大家演示一个Rails中使用Find方法更加优雅的方式。例子中Task类有一个属性complete表明任务是否已经完成(complete字段是false意味着未完成),incomplete和last_incomplete方法分别返回所有未完成的和最后一个未完成的任务。class TaskController < ApplicationController def incomple

2012-11-15 23:47:07 2406

翻译 RailsCasts中文版,#1 Caching with Instance Variables 缓存实例变量

class ApplicationController < ActionController::Base def current_user User.find(session[:user_id]) endend这是一个在Action中的场景,上面的代码调用User的find方法传入会话中的user_id从数据库中读取当前登陆的用户信息。如果这个方法将会在一次页面请求中重复调

2012-11-15 23:35:20 1619

原创 使用gem安装rails,付解决It seems your ruby installation is missing psych (for YAML output).

http://blog.csdn.net/abbuggy/article/details/8181064在前面,我们学会了使用RVM的作用和利用RVM安装ruby并管理其版本的方法。下一步就是使用ruby中的gem工具安装rails(rails也是ruby中的gem),关于gem是什么请移步《关于rubygem你需要知道的》先使用rvm将ruby切换至需要的版本(我当前用的是1.9

2012-11-15 00:03:09 11058 2

原创 在ubuntu中安装及使用rvm管理ruby版本

http://blog.csdn.net/abbuggy/article/details/8170899RVM的主要作用是方便的管理系统中的多个ruby版本而不至于混乱。我们来看看如何安装RVM,我使用的ubuntu12.04LTS。准备工作后面需要使用curl,用dpkg -s curl命令检查一下系统中有没有安装abbuggy@abbuggy-ubuntu:

2012-11-11 17:37:55 30079 1

原创 Ruby on Rails,链式调用order,limit,offset方法对条件查询结果进行整理

http://blog.csdn.net/abbuggy/article/details/8094043在《Ruby on Rails,使用where方法对持久化对象进行条件查询》我们学习到可以通过where方法进行条件查询操作返回对象列表。还有三个方法可以对返回的列表进行操作以便得到我们想要的结果集。order方法对结果进行排序,比如将返回的对象按照名称升序排列、按照创建时间降序

2012-11-07 00:07:28 6897

原创 Ruby on Rails,使用where方法对持久化对象进行条件查询

http://blog.csdn.net/abbuggy/article/details/8094043在《Ruby on Rails,使用find方法加载持久化对象》一文中,我们使用find系列方法进行对象查询。在新版本的Rails中,都推荐使用where而不是find方法进行条件查询了。语法上和find条件查询差不多,应该说更简洁一点,比如我想找到position是2的对象。

2012-10-21 00:40:10 12649 1

原创 Ruby on Rails,使用find方法加载持久化对象

欢迎来我的博客http://blog.csdn.net/abbuggy/article/details/8092928前文《Ruby on Rails,使用new和create创建ActiveRecord对象及他们之间的区别》,《Ruby on Rails,使用save和update_attributes更新持久化的ActiveRecord对象》,《Ruby on Rails,使用

2012-10-20 18:37:24 5330

原创 Ruby on Rails,使用destroy方法删除ActiveRecord对象

欢迎来我的博客http://blog.csdn.net/abbuggy/article/details/8091639在之前的《Ruby on Rails,使用new和create创建ActiveRecord对象及他们之间的区别》中学习到,通过new和create命令创建及持久化ActiveRecord对象;《Ruby on Rails,使用save和update_attributes

2012-10-19 23:42:30 7987

原创 在Linux下安裝Rails开发环境(基于Ubuntu12.04LTS)

前文《Ruby on Rails,环境安装和Gems》中介绍了在windows环境下使用RailsInstaller搭建Rails开发环境的方法。有必要补充一下在类linux环境搭建环境的步骤,留存备用。操作基于我本机虚拟的Ubuntu12.04LTS版本系统,步骤来自于网络,我自己亲身实践一遍而已。安装之前先进行一下系统本身的更新,1.apt-get update更新软件包列表。2.ap

2012-09-09 00:27:49 3168

原创 Ruby on Rails,使用save和update_attributes更新持久化的ActiveRecord对象

欢迎来我的博客http://blog.csdn.net/abbuggy/article/details/7948568上文《Ruby on Rails,使用new和create创建ActiveRecord对象及他们之间的区别》中我们使用rails console访问模型创建对象并将其保存到数据库中。现在我们学习如何更新已经持久化的对象并将修改更新到数据库。与保存对象类似,更新对象也

2012-09-05 22:52:59 12003

原创 Ruby on Rails,使用new和create创建ActiveRecord对象及他们之间的区别

欢迎来我的博客http://blog.csdn.net/abbuggy/article/details/7944401在前文《Ruby on Rails,使用Rails Console进行ActiveRecord调试》中,我们能够在rails console中访问模型并进行对象创建和入库操作。现在我们来看一看创建和入库操作的一些细节。在rails中,new/save操作和creat

2012-09-05 01:31:11 8074

Advanced Archive Password Recovery

Advanced Archive Password Recovery

2012-07-20

Apache Commons Net 1.4.1

Apache Commons Net 1.4.1

2011-09-25

Apache Commons Net 3.0.1

Apache Commons Net 3.0.1

2011-09-25

福昕阅读器foxit reader 4.3.1

免费的pdf文档阅读和打印工具。拥有小巧的体积、快捷的启动和丰富的功能,其核心技术和pdf标准版完全兼容。可以再文档上批注。

2011-08-31

磁盘整理smartdefrag2

免费强大的磁盘碎片整理工具。采用业界领先的ExpressDefrag技术,碎片整理速度非常快,而且还能对磁盘文件系统进行优化。借助领先的静默整理技术,在后台利用计算机的空闲时间进行碎片整理,让你的硬盘一直保持较高的工作效率。

2011-08-31

Notepad_5.9.3

小巧高效率的文本编辑器。内置多达27中语法高亮提示,还支持自动以语言。可自动检测文件类型,根据关键字显示节点,节点可自由折叠打开,还可以显示缩进引导线,代码显得有层次感。

2011-08-31

ToDoList任务管理软件6.2

ToDoList帮你把要做的事情列出来,一项一项,类似思维导图。最明显的好处是强迫你整理出任务的每个部分,理顺后按部就班完成,提高效率。开始使用时会觉得很费劲,但坚持下来就能体会到管理软件带来的便利了。

2011-08-30

精通struts-基于MVC的java web设计与开发part2

孙为琴的struts入门书 有点老可是很经典 扫描版

2011-08-27

精通struts-基于MVC的java web设计与开发part1

孙为琴的struts入门书 有点老可是很经典 扫描版

2011-08-27

yaoyuhang要的自动截屏工具

我说怎么没人要呢,嫌贵啊原来是 我新来的 比较菜 见教了

2010-05-18

yaoyuhang要的自动截屏工具

yaoyuhang要的自动截屏工具。 写了一个最简单的实现,不能配置。 需要安装java虚拟机。 双击运行(如果被rar打开了,则通过右键选择打开方式为Java即可)。 图片自动存放在用户目录的capture中(如C:\Documents and Settings\你的用户名\capture),按当前时间命名。 不要非法使用。

2010-05-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除