为什么Rails使用辅助方法,如link_to而不是<a href...="">?</a>

时间:2010-10-17 01:29:09

标签: ruby-on-rails ruby

我正在学习Rails,我注意到Rails不断使用诸如link_to之类的辅助方法,而不仅仅使用普通的html。现在我可以理解为什么他们会使用他们会使用一些辅助方法,但我不明白为什么他们更喜欢帮助方法而不是直接编码html。为什么Rails更喜欢帮助方法,而不是你必须手动编写html?为什么Rails团队会做出这种设计选择?

2 个答案:

答案 0 :(得分:11)

在Rails应用程序中,通常使用URL和内容方法生成链接,例如

<%= link_to @article.user.name, @article.user %>

这比将它们手动放入<a>标签更容易管理。

<a href="<%= user_path(@article.user) %>"><%= @article.user.name %></a>

使用路由器生成这些网址,对吧?如果你硬编码/users/1并决定以后想要/users/1-John-Doe会怎样?会发生什么?)< / p>

对于静态链接,它并不重要。

<a href="http://www.google.com/">Google</a>
or
<%= link_to 'Google', 'http://www.google.com/' %>

一个人可以为前者提供表现,或者后者表现出一致的风格,因为两者都同样易于管理。

答案 1 :(得分:7)

如果模型的URL路由发生了变化,那么手写的HTML也必须全部更新;通过一个函数,行为(链接到其中一个东西)与当前的路由方案分离。