关于set_breadcrumbs这个方法 #23

Closed
pokka opened this Issue Jan 31, 2013 · 0 comments

Comments

Projects
None yet
1 participant

pokka commented Jan 31, 2013

是否有需要修改set_breadcrumbs方法的行为?不再强制重置@breadcrumbs,添加set_breadcrumbs!方法来做这件事:

def set_breadcrumbs
  @breadcrumbs ||= ["<a href='/'>Home</a>"]
end

def set_breadcrumbs!
  @breadcrumbs = ["<a href='/'>Home</a>"]
end
  • 由于这个before_filter方法的执行会在rails项目ApplicationController的before_filter执行之后,所以导致如需在ApplicationController中动breadcrumb的时候则会报错(还没初始化@breadcrumbs),尽管这个情况可能并不多
  • 虽然不修改这里也可以很多方法解决,如自己初始化,overwrite这个方法,在下级controller中添加skip_filter等...但我觉得这个方法的行为是有歧义的(关键是filter的执行顺序的原因会导致重置),不方便开发者灵活使用这个方法.
  • 再进一步的话,我觉得这个before_filter交由开发者决定何时引入或者何时调用会好点,其实还是很多情况这个方法是无需执行的,如非text/html请求或无须呈现html页面的请求就无必要执行这个方法.

pokka closed this Sep 23, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment