Rails中helpers,views,controllers之间的关系

来源:互联网 发布:简明python教程图书 编辑:程序博客网 时间:2024/04/29 20:58

Rails是MVC的典范,modle,controller,view各自完成属于自己的工作,那么,helper到底在rails中充当什么角色?

下面举个简单的例子:

modle:student

controller:StudentsController

view:index.html.erb

Student age nameend

StudentController def index endend

index .html.erb<p>show students <p>

现在我们将所有的学生都取出来,然后展示view上。

Help

相对于比较复杂的modle,业务逻辑也会相对复杂,比如要在列表中显示当前学生的出生年,但是数据库中没有该记录,只能通过age字段去获取,这就需要一个方法。这个方法不是一个逻辑处理,因此不适合放在model中,也不是一个资源请求与反馈,因此不适合放在controller中,那么就只能放在view中?No,放在View中固然没什么错,但是View中ruby代码过多会不便于阅读,而且假如除了在列表页,在编辑,甚至其他页面也需要显示学生的出出生年,那么是不是也要写ruby代码?因此,这个时候最好在StudentHelper中定义一个方法getYear(student),那么在Help中再调用该helper方法即可。

更多资源请访问:ruby on rails guide