分享 link_to 想默认加上 target:"_blank"该怎么做?

evan · 2012年11月09日 · 最后由 cactis 回复于 2012年11月09日 · 3349 次阅读

看了 api 感觉参数好复杂,不知道该怎么重写

最好不要这么干,你如果实在懒得写太多参数,就自己定一个 link_to_blank 的方法包装一下 link_to

def link_to_blank(*args, &block)
  if block_given?
    args = [(args.first || {}), (args.second || {}).merge(:target => '_blank')]
  else
    args = [(args.first || {}), (args.second || {}), (args.third || {}).merge(:target => '_blank')]
  end
  link_to(*args, block)
end

根据你的思路网上找了段代码,其实我是不清楚 target:"_blank"怎么正确的 merge 到 *args 里面,认真研究了下搞明白了,谢谢

需要 登录 后方可回复, 如果你还没有账号请 注册新账号