Rails 3 - 自定义link_to帮助程序(具有默认类和添加类的能力)

Gal*_*axy 4 ruby-on-rails helpers link-to ruby-on-rails-3

我正在尝试连接一个具有默认类'pjax'的自定义帮助程序,但也保留了在需要时添加类的功能.

例:

link_to_pjax('pagename', page_path, :class => 'current')
Run Code Online (Sandbox Code Playgroud)

所以帮助器默认添加'pjax',还有类'current',或传入的任何内容.

def link_to_pjax(name, path, options = {:class => 'pjax'})
    link_to(name, path, options)
end
Run Code Online (Sandbox Code Playgroud)

语法吓坏了我.任何建议将不胜感激.

Dam*_*ien 6

def link_to_pjax(name, path, options)
  options[:class] += ' pjax'
  link_to(name, path, options)
end
Run Code Online (Sandbox Code Playgroud)

编辑

经过测试,它不那么优雅:

 def link_to_pjax(name, path, options = {})
   options[:class] ? options[:class] += ' pjax' : options[:class] = 'pjax'
   link_to(name, path, options)
 end
Run Code Online (Sandbox Code Playgroud)

我的第一个解决方案有效,但前提是你仍然指定了一个类.

所有情况下的最新作品:

  • link_to_pjax'click me',my_super_path,class:'ahah',id:'hello'
  • link_to_pjax'click me',my_super_path
  • 等等

我的错...