我在我的应用程序中使用Rails 5,并且link_to在我的代码下面找到并使用will_paginate,
<%=link_to text, params.merge({controller: controller, action: action, page: 1,
order_field: field, order_dir: dir}) %>
以上代码抛出错误
尝试从未经过清理的请求参数生成URL!一个 攻击者可以将恶意数据注入生成的URL,例如 改变主人。
即使我尝试使用如下许可证并避免上述错误,
<%=link_to text, params.permit!(page: 1).merge({controller: controller, action: action,
order_field: field, order_dir: dir}) %>
但是,这反过来通过我的rspec提出了一个问题,如下所示,
失败/错误:渲染 ::的ActionView ::模板错误: 未定义的方法
permit!' for {:show_aliases=>"true"}:Hash # ./app/views/shared/_sort_column.html.erb:10:in
_ app_views_shared__sort_column_html_erb ___ 3232147907220672307_98274920'
为解决此问题的任何帮助。
答案 0 :(得分:0)
尝试使用params.permit
(没有感叹号):
<%=link_to text, params.permit(page: 1).merge({controller: controller, action: action,
order_field: field, order_dir: dir}) %>