Assume you have a params array with the following items:
params[:qry][:name] = ‘jo’
params[:qry][:city] = ”
You would like to build a new URL with the current params appended. Should be as simple as:
url_for( :action => ‘list’, :params => params.merge( { :sort => key, :page => nil } ) )
Well that’s not the case it results in the following URL:
http://localhost/controller/list?qry=namejocity&sort=created_at
Long live Rails! The frustrating part of it, is that it first converts inner Hashmaps to a string. I don’t have a clue why!
The solution, put the following code in your ApplicationHelper. (Is a nice method to have ;-)
#
# Converts the given HASH array like ‘params’ to a flat
# HASH array that’s compatible with url_for and link_to
#
def flatten_param_hash( params )
found = true
while found
found = false
new_hash = {}
params.each do |key,value|
if value.is_a?( Hash )
found = true
value.each do |key2,value2|
new_hash[ key.to_s + ‘[' + key2.to_s + ']‘ ] = value2
end
else
new_hash[ key.to_s ] = value
end
end
params = new_hash
end
params
end
Adjust your code to the following
url_for( :action => ‘list’, :params => flatten_param_hash( params.merge( { :sort => key, :page => nil } ) ) )
And voila the result is now a little bit better:
http://localhost/controller/list?qry[name]=jo&qry[city]=&sort=created_at
分享到:
相关推荐
RUBY的经典之作,对其在RAILS下开发写得很详细
《Rails101_by_rails4.0》是一本专注于Rails 4.0.0版本和Ruby 2.0.0版本的自学教程书籍,它定位于中文读者,旨在成为学习Rails框架的参考教材。Rails(Ruby on Rails)是一个采用Ruby语言编写的开源Web应用框架,它...
`weixin_rails_middleware` 是一个开源的 Ruby 框架中间件,设计用于帮助开发者轻松地在 Rails 应用程序中集成微信服务。这个中间件提供了与微信API交互的功能,包括验证微信服务器的请求、处理用户消息、以及发送...
rails_semantic_logger, Rails 语义记录器用语义记录器替换 Rails 缺省记录器 Rails 语义记录器 语义记录器用语义记录器替代 Rails 缺省记录器。http://github.com/rocketjob/rails_semantic_logger文档有关完整文档...
rails_apps_composer, 一个 gem,为 Rails 启动应用程序创建 Rails 应用程序模板 Rails 应用编辑器 Rails 应用程序编辑器 gem 安装一个 命令行 工具来从"食谱"的Collection 组装 Rails 应用程序。"你可以使用 rails_...
"inspinia admin - v2.5 Rails_Full_Version" 是一个基于Rails框架构建的后台管理系统的完整版本。这个系统采用流行的Inspinia Admin模板,提供了丰富的功能和自定义选项,旨在帮助开发者快速构建高效、现代且用户...
介绍插件,用于对记录进行排序(使用 gem)安装要启用rails_admin_acts_as_list,请将以下内容添加到您的Gemfile : gem 'rails_admin_acts_as_list'gem 'rails_admin' 重要提示: rails_admin_acts_as_list之前必须...
在Rails_Full_Version压缩包中,包含了完整的源代码和必要的资源文件,开发者可以通过解压并导入到Rails项目中,按照官方文档进行配置和定制。同时,这个版本可能还包含了升级记录、更改日志和可能的bug修复,以保证...
《Ruby on Rails应用程序测试指南》深入解读 一、为何为Rails应用编写测试? 在《Ruby on Rails Guides_ A Guide to Testing Rails Applications.pdf》这一指南中,开篇即强调了为Rails应用编写测试的重要性。...
Api-rails5_api_tutorial.zip,了解如何在michael hartl的rails 5教程上构建一个现代api立即在rails应用程序中构建一个api!(Rails 5版本),一个api可以被认为是多个软件设备之间通信的指导手册。例如,api可用于web...
Ruby on Rails Guides_ A Guide to Active Record Associations.pdf
《敏捷Web开发与Rails》第三版是一本深入探讨Ruby on Rails框架在敏捷软件开发方法论下的应用指南。本书由多位知名作者共同编写,包括Sam Ruby、Dave Thomas、David Heinemeier Hansson等,他们都是在Ruby社区内享有...
rails_best_practices rails_best_practices是用于检查Rails代码质量的代码度量工具。 它支持以下ORM / ODM: 活动记录 蒙古型 mongomapper 以及以下模板引擎: erb 哈姆 减肥 拉布尔 rails_best_practices...
"Rails Open Flash Chart" 是一个基于Ruby on Rails框架的库,用于在Web应用程序中生成交互式的Flash图表。这个库允许开发者轻松地创建各种统计图表,如折线图、柱状图、饼图等,以便更好地可视化数据。由于Flash在...
本资料“RestFul_Rails_Dev_pdf_v_0.1.zip”包含了《RESTful Rails Development》的翻译版,将深入探讨如何在Rails中实现RESTful的设计模式。 首先,RESTful设计的核心概念是资源(Resources)。在Rails中,资源...
**rails_url_shortener:Ruby实现的URL缩短器** 在当今的互联网时代,URL缩短服务已经变得非常普遍,它们能够将长且复杂的网址转化为简洁、易记的短链接。`rails_url_shortener` 是一个使用Ruby编程语言开发的URL...
本文将详细探讨其在Rails框架下的种子项目(Rails_Seed_Project),旨在帮助开发者更好地理解和运用这一强大的工具。 首先,我们来了解一下“Inspinia Admin”。这是一款基于Bootstrap 3构建的响应式后台模板,提供...
InspiniaAdmin 2.5 Rails_Seed_Project是一款基于Bootstrap框架的高级管理模板,专为Ruby on Rails开发者设计,旨在加速Web应用程序的开发过程。这个项目作为种子启动器,提供了完整的后台管理界面,包括丰富的UI...
Rails_3_Cheat_Sheets.pdf
Avatars For Rails 是一个完整的解决方案,可为模型提供头像支持。 它包括一个数据库迁移和带有 jquery.fileupload 和 jquery.jcrop 的视图 它依赖于回形针和 imagemagick 安装 添加到您的 Gemfile: gem '...