我在Rails 4应用中使用Ransack来搜索索引列表中的记录。
然后我在该索引列表上有一个按钮,链接到得分图页面。
我想使用scores graph
中索引的@scores。
以下是分数控制器:
def index
@search = current_user.scores.notarchived.search(params[:q])
@scores = @search.result
end
def scoresgraph
@scores = params[:scores]
end
这是索引页面中的按钮:
<%= link_to 'Graph', scores_scoresgraph_path(:scores => @scores), :class => 'btn btn-xs btn-primary' %>
但是,我得到了:未定义的方法`order&#39; for&#34; #Score :: ActiveRecord_AssociationRelation:0x007fb5bdbf9a08&#34;:String
答案 0 :(得分:0)
您应该将索引内部的内容提取到一个单独的方法中:
def index
@scores = score
end
def scoresgraph
@scores = score
end
private
def search
@search ||= current_user.scores.notarchived.search(params[:q])
end
def score
search.result
end
如果这不起作用,可能是因为在scoregraph中你没有引用旧变量,所以你应该将link_to更改为:
<%= link_to 'Graph', scores_scoresgraph_path(q: 'same q as the index'), :class => 'btn btn-xs btn-primary' %>