如何重构这些Rails代码?

Tin*_*n81 1 ruby ruby-on-rails ruby-on-rails-3

只是出于好奇:

怎么可能这个(相当难看的)Rails代码被美化/重构:

def section_link(name, path)    
  link = link_to(name, path) 
  if name != controller.controller_name.titlecase
    link
  else
    link_to(name, path, :class => 'current')
  end
end  
Run Code Online (Sandbox Code Playgroud)

And*_*nes 6

def section_link(name, path)
  options = {}
  options[:class] = 'current' if name == controller_name.titlecase
  link_to name, path, options
end
Run Code Online (Sandbox Code Playgroud)


tok*_*and 5

我写道:

def section_link(name, path)
  is_current = (name == controller.controller_name.titlecase)
  link_to(name, path, :class => ('current' if is_current))
end
Run Code Online (Sandbox Code Playgroud)

理由:1)变量is_current使代码更具说明性.2)link_to假设这nil 意味着空类(我们想要的).