0
我正在尝试重构我的Rails帮助程序,并将面包屑和导航菜单逻辑移入单独的类中。但在这些类中,我无法访问params
,cookies
散列等。我认为在不同类之间传递params并不是一个好主意。我怎样才能避免这种情况?
比如我有:在Rails帮助类中传递参数
module NavigationHelper
def nav_item(name, path, inactive = false)
NavItem.new(params, name, path, inactive).render
end
class NavItem
include ActionView::Helpers
include Haml::Helpers
def initialize(params, name, path, inactive)
init_haml_helpers
@params = params
@name = name
@path = path
@inactive = inactive
end
def render
capture_haml do
haml_tag :li, item_class do
haml_concat link_to @name, @path
end
end
end
def item_class
klass = {class: 'active'} if active?
klass = {class: 'inactive'} if @inactive
klass
end
# Class of the current page
def active?
slug = @path.gsub /\//, ''
@params[:page] == slug || @params[:category] == slug
end
end
end
它们是依赖关系,依赖关系管理是一个棘手的问题。这种方式没有问题,方法中的参数强迫自己想想你真正需要什么。 – apneadiving