今天在做项目的时候,发现 link_to 对传入 nil 和""参数的处理不同。 假设当前页面路径为'admin/test' 那么,当参数为 nil 时,得到的结果为: <%= link_to nil, nil %> admin/test
当参数为""时, <%= link_to '', '' %>
另看 rails 相关源码,对于可能出现 nil 的情况,可以使用以下方式: <%= link_to_if(condition, name, url) %> 当 condition 为 true,才生成一个 a 标签
追加: 当使用 link_to_if 方法时候,一定要慎用,不然会出问题,比如: <%= link_to_if(post.source.present? post.source.name, admin_post_source_path(post.source) %> 当 post.source 为 nil 时,会继续执行 post.source.name 代码,此时就会报 no method 错误。