2011-01-30 55 views
0

这个问题直接导致我对rails的无知,因此也是可怕的搜索查询。我试图在我的应用程序的每个页面上放置一个可排序的表格。基本上,库存清单需要随处显示。但是,在用户的个人资料页面上,我收到一个未定义的方法`sort_by`错误。rails 3.0.3嵌入视图

下面是它的设置方法,我在库存控制器中有两个辅助方法sort_bysort_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_bysort_direction一段时间。但是,我将如何通过库存控制器访问它们?

回答

0

将这两种方法移动到您的ApplicationController,并将helper_method :sort_by, :sort_direction行添加到您的控制器(这会将这些方法作为帮助器方法展示给您的视图)。所有的控制器都继承它,所有控制器中的任何方法都将可用,并且添加helper_method将它们公开给所有视图。

也就是说,如果你没有在控制器动作中使用这些方法,也可以将它们移动到助手中。

+0

当我像这样模块化时出现的问题是“无路线匹配”错误。因为我在URL中抛出了sort_by参数。 具体而言,我试着将所有内容移至application_helper。 – noazark 2011-01-30 23:09:05