0

我无法让一个link_to方法工作的两部分参数,其中一个是 Ruby 方法,另一个是参数。

当我使用以下代码时:

<%= link_to "Sort by most active", school_course_path(current_school, :params => "by_most_active") %>

我收到“无法将字符串转换为哈希”的错误。我试图在 params 的语法方面遵循这个问题,但无法弄清楚为什么我的 :params 会出现错误。

谢谢。

编辑

为了提供额外的上下文,我设置了以下嵌套路由:

  resources :schools do
    resources :courses 
  end
4

4 回答 4

1

看起来您正在尝试链接到 course_controller 的 show 方法。您是否没有错过课程对象作为路径助手的第二个参数?

于 2013-02-04T23:56:49.187 回答
1

:params选项需要哈希,而不是键,因此您可以同时指定键和值。你需要类似的东西:params=> { by_most_active: true }

于 2013-02-05T00:03:11.707 回答
1

您正在使用school_course_pathwhich 期望一所学校和一门课程作为其前两个参数。通过 current_school 后,您需要为其提供课程。您还应该params使用不同的名称更改部件,例如order. 所以你的 link_to 应该看起来像

school_course_path(current_school, course, order: 'by_most_active')

如果你想获得最活跃的课程current_school,你应该使用school_courses_path

school_courses_path(current_school, order: 'by_most_active')
于 2013-02-05T00:24:50.240 回答
-1

试试这个

<%= link_to "Sort by most active", school_course_path(:current_school => current_school, :params => "by_most_active") %>

并打电话

params["current_school"] and current_school["by_most_active"]. 
于 2013-02-04T23:56:44.417 回答