Ruby on rails 在rails中处理复杂的GET参数
我正试图通过使用ransack将参数通过GET传递到表单,它通常工作正常,但当我尝试合并它时,参数[:q]会导致问题 控制器(使用) 看法 如果没有q[],它将正确管理参数,覆盖上一个参数 还尝试了Ruby on rails 在rails中处理复杂的GET参数,ruby-on-rails,ruby-on-rails-3,get,form-for,ransack,Ruby On Rails,Ruby On Rails 3,Get,Form For,Ransack,我正试图通过使用ransack将参数通过GET传递到表单,它通常工作正常,但当我尝试合并它时,参数[:q]会导致问题 控制器(使用) 看法 如果没有q[],它将正确管理参数,覆盖上一个参数 还尝试了params[:q].merge(:genre\u name\u eq),当没有q[]时会出现问题,而且也不起作用,给我genre\u name\u eq=和没有q[] 我还可以如何处理q[]以使其替换值,而不是重复多次?编辑(编辑后) params是散列,而不是简单的查询字符串。如果要更新嵌套值,则
params[:q].merge(:genre\u name\u eq)
,当没有q[]时会出现问题,而且也不起作用,给我genre\u name\u eq=
和没有q[]
我还可以如何处理q[]以使其替换值,而不是重复多次?编辑(编辑后)
params
是散列,而不是简单的查询字符串。如果要更新嵌套值,则必须更新嵌套哈希
首先确保params[:q]
存在并且是散列(在控制器中)
然后仅更新视图中的q
<% params[:q].update :genre_name_eq => genre.name %>
<%= link_to genre.name, params %>
genre.name%>
编辑(编辑后)
params
是散列,而不是简单的查询字符串。如果要更新嵌套值,则必须更新嵌套哈希
首先确保params[:q]
存在并且是散列(在控制器中)
然后仅更新视图中的q
<% params[:q].update :genre_name_eq => genre.name %>
<%= link_to genre.name, params %>
genre.name%>
你能粘贴参数和参数。合并(:“q[genre\u name\u eq]”=>genre.name)吗?好的,更新了更多细节。你能粘贴参数和参数吗?合并(:“q[genre\u name\u eq]”=>genre.name)?好的,更新了更多细节。这对一组参数很有效,但是当与另一组参数一起使用时,说q[record_format_name_eq]
它总是选择最后一个(类型),即使没有选择任何内容。这对于一组参数非常有效,但是当与另一组参数一起使用时,比如说q[record_format_name_eq]
它总是选择最后一个(类型),即使没有选择任何内容。
q[genre_name_eq]=Rockabilly&q[genre_name_eq]=Rockabilly
params[:q] ||= {}
<% params[:q].update :genre_name_eq => genre.name %>
<%= link_to genre.name, params %>