我无法获得一个link_to
方法的两部分参数,其中一个是Ruby方法,另一个是params。
当我使用以下代码时:
<%= link_to "Sort by most active", school_course_path(current_school, :params => "by_most_active") %>
我收到“无法将String转换为Hash”的错误。我试图在params的语法方面遵循这个question,但是无法弄清楚为什么my:params会出错。
感谢。
修改:
为了提供额外的上下文,我设置了以下嵌套路由:
resources :schools do
resources :courses
end
答案 0 :(得分:1)
看起来您正在尝试链接到course_controller的show方法。你是不是错过了课程对象作为路径助手的第二个参数?
答案 1 :(得分:1)
:params
选项期望哈希,而不是密钥,以便您可以指定密钥和值。您需要:params=> { by_most_active: true }
。
答案 2 :(得分:1)
您正在使用school_course_path
,希望将学校和课程作为前2个参数。通过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')
答案 3 :(得分:-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"].