Rails 5尝试从未经过清理的请求参数生成URL

时间:2017-03-15 05:22:09

标签: ruby-on-rails rspec ruby-on-rails-5

我在我的应用程序中使用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'

为解决此问题的任何帮助。

1 个答案:

答案 0 :(得分:0)

尝试使用params.permit(没有感叹号):

<%=link_to text, params.permit(page: 1).merge({controller: controller, action: action, 
order_field: field, order_dir: dir}) %>