rails-best-practices-1

#FAT MODEL,SKINNY CONTROLLER#

最近看了codeschool的教程,打算把里面讲解的rails best practices总结下。

视频里的第一部分就是讲解的Fat model,skinny controller。我理解的就是要尽量把业务代码写到model中,而controller要尽量的简单。

第一个例子是tweets_controller.rb的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class TweetsController < ApplicationController
def retweet
tweet = Tweet.find(params[:id])
if tweet.user == current_user
flash[:notice] = "Sorry, you can't retweet your own tweets"
elsif tweet.retweets.where(:user_id => current_user.id).present?
flash[:notice] = "You already retweeted!"
else
t = Tweet.new
t.status = "RT #{tweet.user.name}: #{tweet.status}"
t.original_tweet = tweet
t.user = current_user
t.save
flash[:notice] = "Succesfully retweeted"
end
redirect_to tweet
end
end

上面的代码就是所谓的“SAD CODE”,并不理想。最佳实践里好的代码,被codeschool称作“HAPPY CODE”,很有意思。

下面我们看看上面的代码该如何实现“HAYYP CODE”,首先要把一部分代码转移到tweet model里,然后上面的代码变成如下样子

阅读更多

rails中文问题

##rails controller中的中文问题

在ruby 1.9环境中,如果controller里出现中文,就会报错。报错如下

1
invalid multibyte char (US-ASCII)

解决办法:

在这个controller的文件开头加入如下语句

1
#encoding: utf-8

##rails validates的中文问题

阅读更多

快速配置vim和macvim

vim以为需要安装各种插件和配置好vimrc才能适合我们开发使用。如果默认只安装vim不用任何插件,并不好用。

阅读更多

emlog迁移到octopress

用emlog的博客系统已经有2年了,本着活着就要折腾的原则。最近开始尝试使用octopress,这个博客还真的很适合技术人员。通过github版本控制,采用自己最喜欢的编辑器本地写博客,rake deploy发布。

目前我原来的博客100多篇都迁移到octopress里了,不过因为原来的图片都存放在本地,这次打算全部存放到flickr.com了。这部分只能手动整理了。

下面说说我是怎么迁移的吧

阅读更多

git-first-on-ubuntu

#ubuntu 12.10下初次使用git
前些时候在mac下面使用了git,感觉很棒。今天在单位安装了一台ubuntu 12.10的桌面系统,也开始尝试用git的方式来写blog。

阅读更多

我2013年学习列表

#2013学习计划

2012年开始了,这一年打算好好学习下ruby、python两种语言和rails框架。

阅读更多

开始使用octopress

#概述#
最近在看ruby-china.orghappycasts.net的视频。开始尝试使用git来做版本控制。原来都是使用svn,所以最近一直在折腾和学习。看到很多编程人员都开始采用octopress来代替wordpress写blog了。我也开始尝试使用这个octopress的blog系统。

octopress是一套基于ruby构建的blog管理系统,通过git来为我们的文章做版本控制,并且通过rake命令可以简单的完成博客的发布与远程站点的同步。配合github提供的pages功能,我们连自己的主机都可以省了。非常方便。

阅读更多

no-title


阅读更多

no-title


阅读更多

no-title


阅读更多