这个问题是我对rails无知的直接结果,因此也是可怕的搜索查询。我正在尝试在我的应用程序的每个页面上放置一个可排序的表。基本上,库存清单需要随处可见。但是,在用户的配置文件页面上,我得到一个未定义的方法`sort_by`错误。
以下是它的设置方式,我的库存控制器中有两个辅助方法sort_by
和sort_direction
。然后我在应用程序助手中有一个辅助方法,它创建链接:
def sortable(column, title = nil, css_class = "sort")
title ||= column.titleize
css_class = column == sort_by ? css_class + " current #{sort_direction}" : css_class
direction = column == sort_by && sort_direction == "asc" ? "desc" : "asc"
link_to title, params.merge(:sort => column, :direction => direction, :page => nil), {:class => css_class}
end
我知道我的问题是我在用户控制器上使用sort_by
和sort_direction
。但是我如何通过库存控制器访问它们?
答案 0 :(得分:0)
将这两个方法移到ApplicationController
,然后向控制器添加一个helper_method :sort_by, :sort_direction
行(将这些方法作为辅助方法公开给您的视图)。所有控制器都从它继承,因此其中的所有方法都可用于所有控制器,并且添加helper_method
会将它们暴露给所有视图。
也就是说,如果你没有在控制器动作中使用这些方法,也可以将它们移动到帮助器中。