如题,看到有文章提到说用<%= link_to 'xxx', xxx_path %>比标签更容易维护之类的,不是太明白。http://blog.xdite.net/posts/2011/12/04/misunderstanding-about-render/
同理,是不是 rails 其他的 tag helper 也是。
似乎很多前端都不太屑于用这套东西。有人能分析下吗
我记得 XDite 的意思应该是 link_to 能保证出来的 HTML 代码不会有错误(比如:少一个 或 结尾)
当然这个我保留意见,我觉得,缺少闭合的情况很少会出现
但是项 xxx_path
(url_helper) 这类方法生成 URL 是一定要用的!如果你直接写 "/users", 等你需要重构,或者需要把 users 换成 members 的时候,那就悲剧了,你得用全局查找,而且某些情况下,全局查找无法准确的处理(比如带有很多奇葩的参数),而如果你用 url_helper 的方式,这个事情就很简单,修改 routes.rb 就可以了。
link_to
还可以直接用对象参数,更加有 "model driven" 的感觉
但在 slim 里用 a
就比 link_to
容易写,也更快...
a href=xxx_path data-method='delete'
不过最近一段时间一直是用 link_to 方法来生成链接标签的,这种做法在 a 标签有多种属性的时候优势会特别明显
<%= link_to "登录", new_session_path, :class => "btn btn-success btn-large", :rel => "facebox", :data => { :name => "foo" } %>
resources :members, :path => :users, :as => :users
我看书上例子是这样讲的。
参考:http://guides.rubyonrails.org/routing.html#overriding-the-named-helpers
以前我不怎么用 Link_to 等标签 现在,一般都会用 link_to 原因主要有:第一,便于维护,比如我修改了某一个 route,不需要逐行修改;第二,按照约定,严格执行 Rails 规范
前端对 link_to 不感冒正常,link_to 写法符合 ruby way,未必符合前端的 way。第二,a 标签也可以使用 xxx_path
属性多了在 slim 里用 a 更简单,attribute 写法和 html 几乎一致,而且前端很容易用 .btn-success
之类的方式搜出元素定义的代码,如
a.btn.btn-success.btn-large href=new_session_path rel="facebox" data-name="foo" 登录
link_to 在特定条件下更容易达到整齐划一的效果,比如
<%= link_to "新闻", news_path %>
<%= link_to "博客", bokes_path %>
<%= link_to "论坛", topics_path %>
<%= link_to "求职", jobs_path %>
<%= link_to "问答", asks_path %>