关于ActiveRecord 越看越糊涂

关于ActiveRecord 越看越糊涂

看了ActiveRecord这章 越看越糊涂
什么时候该把方法定义到model中?什么时候在定义到控制器中?如果是操作数据库的操作都放在MODEL中,那么就和前面的例子冲突了 .save,find等全是ActiveRecord的方法 但是写在了控制器中.是呀头都转晕了,
php?name=link" onclick="tagshow(event)" class="t_tag">link_to :action => :list 和 php?name=link" onclick="tagshow(event)" class="t_tag">link_to :action => 'list' 是一样的结果?还有有时候又使用这种形式:action => @list到底怎么样区别它们的联系和它们具体在什么样的环境下使用?还望高手速来指点迷津呀?
第一个问题是关于OO的问题,Rails是一个MVC框架,和用户操作有关的方法是就定义在Controller中的,而和领域对象相关的方法就定义在Model中的。这个还是要对OOD有一定了解才能体会的。不要总是想着数据库,数据库已经被ActiveRecord这个ORM封装了,你操作的是对象,你只要想着你要对对象怎么操作就好了。等到在部署之后有数据库性能问题时才要去做些SQL优化。

第二个问题是关于Ruby语言细节的,很多很多人都在问Symbol的问题,论坛里有很多帖都提到了你看看吧。这个查查Ruby的相关书籍就OK了。Rails是Ruby写的,不要把Rails和Ruby看成两种不相干的事物。

从你的问题看出两点,一点是你对于OO不了解,还有Ruby语言本身没有什么认识。你去了解OO原则还有学习了Ruby语言之后就会很自然的懂得你的问题了。
非常感谢管理员的回答呀,我会慢慢努力的争取有一天达到你们这样的水平,以后还要向你们多多的请教呀.