Rails是MVC的典范,modle,controller,view各自完成属于自己的工作,那么,helper到底在rails中充当什么角色?
下面举个简单的例子:
modle:student
controller:StudentsController
view:index.html.erb
Student
age
name
end
StudentController
def index
end
end
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