我正面临着这样的问题:
ArgumentError - 参数数量错误(给定2,预期0..1):
actionpack(4.2.6)lib / action_dispatch / routing / url_for.rb:156:inurl_for' actionview (4.2.6) lib/action_view/routing_url_for.rb:94:in
url_for'的ActionView (4.2.6)lib / action_view / helpers / url_helper.rb:181:link_to'
可排序'
app/helpers/application_helper.rb:7:in
应用程序/视图/联系人/ _sort.html.erb:3:在 `_app_views_contacts__sort_html_erb
这是我的application_helper.rb:
def sortable(column, title = nil)
title ||= column.titleize.downcase
css_class = column == sort_column ? "current #{sort_direction}" : nil
direction = column == sort_column && sort_direction == "asc" ? "desc" : "asc"
link_to title, params.merge(:sort => column, :direction => direction, :page => nil), {:class => css_class}
end
在上面的代码中,link_to是我在日志中收到错误的行。 这是我的_sort.html.erb(从索引文件中呈现):
<div id="sort_control"><a href="#">sort</a></div>
<ul class="sort" style="display:none;">
<li><%= sortable "created_at" %></li> #here I am getting error
<li><%= sortable "firstname" %></li>
<li><%= sortable "lastname" %></li>
<li><%= sortable "email" %></li>
</ul>
这是我的控制器方法:
def index
@contacts = Contact.search(params[:search]).order(sort_column + " " + sort_direction).paginate(:per_page => 60, :page => params[:page])
end
答案 0 :(得分:0)
我对Rails相当陌生,但看起来它不喜欢你的课程被包裹在{}
11111111
根据docs,它应该如下所示:
link_to title, params.merge(:sort => column, :direction => direction, :page => nil), {:class => css_class}
显示的一个例子:
link_to“Articles”,articles_path,id:“news”,class:“article”
答案 1 :(得分:0)
该错误表示您将{2}参数传递到url_for
方法的link_to
部分时,只需要1个。
你试过这个吗?:
link_to title, {params.merge(sort: column, direction: direction, page: nil)}, class: css_class