在rails中,我们默认的URLs在routes.rb中的定义是这样的
map.connect ':controller/:action/:id'
这为我们生成/contrller_name/action_name/id 这个样式的URLs
而我们可以编写to_params方法来定义一个比较友好的url:
def to_params
"#{id}-#{title}"
end
当to_i被调用后,"123-hello-world"会转换成为123
>> "123-hello-world-1".to_i
=> 123
但to_params的使用,比较的单一,考虑下面的这种方式:
def to_params
"#{title}"
end
结果是无法运行。
现在,friendly_id插件提供了这样的一个功能,它可以让你构建非常友好的URLs
Homepage: http://github.com/norman/friendly_id
建立测试项目:
>>rails friendly_id
>>cd friendly_id
>>rake db:create
>>ruby script/generate post title:string content:text
>>rake db:migrate
安装:
1. gem install friendly_id
2. script/generate friendly_id
3. rake db:migrate
使用:
1. 在environment.rb的Rails::Initializer.run do |config|中添加:
config.gem "friendly_id"
2. 在Model中增加:
has_friendly_id :title, :use_slug => true
下面,我们就可以使用http://127.0.0.1:3000/posts/first这样的URL了。
其实现原理,只要看一下生成的表,我想,大家就知道了:
那如果post的title不唯一呢?怎么办?借XXX书里的说法,自己试一下,就知道啦。

- 大小: 31.1 KB
分享到:
- 2009-10-10 10:19
- 浏览 1370
- 评论(9)
- 论坛回复 / 浏览 (9 / 2943)
- 查看更多
相关推荐
zoomeye_get_urls_without_api 使用方法:python3 zoomeye_get_url_without_api.py zoomeye注册自带10000条api数据可拉取,但很快就被挥霍完了。所以,急需这个不需要apila取数据的东东。使用方法很简单:python3 ...
**Rails Friendly URLs gem ...通过`rails_friendly_urls_test`项目,开发者可以深入学习Rails框架中关于Friendly URLs的使用,理解如何自定义路由规则、集成gem、编写测试以及部署和维护应用,从而提升Web开发能力。
将此字符串添加到您的Huginn的.env ADDITIONAL_GEMS配置中: huginn_mattermost_urls_to_files# when only using this agent gem it should look like this:ADDITIONAL_GEMS = huginn_mattermost_urls_to_files ( ...
zoomeye_url_get_urls_without_api 1.0.3 升级域名添加http协议 1.0.2 升级报错,和报错后跳过执行,程序不退出。 改良了zoomeye_get_urls_without_api 做一个小升级。 修改: 1.因为1.0.0版本存在URL编码与...
人类网址 Urls for Humans 是一个 gem,它允许您利用Model.find(params[:id]) 、 to_i和to_param发生的事情,为 Rails 应用程序的 url 应用有意义的名称。... 这是一种与friendly_id gem 不同的友好URL 方法,
NSFW数据源URL ...urls_age_college.txt 2949 urls_age_mature.txt 5942 urls_age_milf.txt 8503 urls_age_teen.txt 5389 urls_amateur.txt 13033 urls_amateur_self-shots.txt 10306 urls
在上传并解压压缩包`ultimate_seo_urls_2-109`后,你需要按照官方文档的步骤进行安装,包括在后台启用插件、设置相应的配置选项,并进行必要的数据库更新。 此外,此插件还支持自定义404错误页面,当用户访问不存在...
#Rails 友好的 URL 引擎 Rails Gem 可以轻松地将任何 URL 配置为更友好的 URL。 ##特征 允许将绝对任何 url 自定义为 SEO 友好的 URL。 处理您在原始路由中定义的... gem 'rails_friendly_urls' 跑步 $ bundl
**Python库 django_friendlyurls-0.1.0.tar.gz** `django_friendlyurls-0.1.0.tar.gz` 是一个针对Python编程语言和Django框架的扩展库,主要用于优化URL结构,使其更加友好、易读。这个库的版本为0.1.0,表明它是...
十六进制提交URL到搜索引擎 该项目正在公开测试中,欢迎使用并提交反馈! 项目正公开测试,欢迎使用并提交反馈! 官方交流QQ群: 路线图 文献资料 中国内地用户临时阅读! Hexo插件可将新帖子的URL提交给Google,...
"Ultimate SEO URLs" 是一款针对 ZenCart 电子商务平台的扩展插件,旨在优化网站的搜索引擎优化(SEO)性能。这个插件的核心目标是将传统的动态URL转化为静态、用户友好的格式,从而提高搜索引擎的抓取效率和用户...
parse_urls 解析任何格式的URL 说明 此函数可以解析任意格式的网址(格式良好),返回一个包含其各组成部分的一维数组,且不受PHP版本的限制。 参数 url 要解析的网址,支持以下任意格式: domain.com只有域名 //...
通过查看"tango_with_django-master"的urls.py文件,我们可以学习如何定义URL模式,以及如何将它们与视图关联。 8. **数据库操作** Django的ORM使得数据库操作变得简单,开发者可以通过Python代码直接操作数据库。...
zencartultimate_seo_urls安装说明.pdf
ZenCart 优化插件 ultimate_seo_urls 的使用和站内优化 ZenCart 优化插件 ultimate_seo_urls 是一个强大的插件,它可以将 ZenCart 的 URL 静态化,从而提高网站的搜索引擎优化(SEO)。下面是使用 ultimate_seo_...
id=123&cat=456”,而通过Ultimate SEO URLs插件,它可以被转化为“/product-name.html”这样的形式。 这个插件的安装和配置对于Zencart网站的SEO提升至关重要。usu-3.0.6是Ultimate SEO URLs插件的一个版本,表明...
"tango_with_django_project" 是一个基于 Python 的 Django 框架的示例项目,旨在帮助初学者理解和掌握 Django 的基本用法。这个项目的名字可能来源于"Tango with Django",这是一个流行的学习资源,用于教授 Django...
2. **动态路由**:除了静态路由,还可以使用动态路由,其中路由参数可以从URL中提取出来,如`/article/{id}`,这里的{id}就是一个动态参数,用于获取特定的文章ID。 3. **路由约束**:为了进一步精确控制路由,可以...
标题中的"PyPI 官网下载 | d8s_urls-0.6.0-py2.py3-none-any.whl"表明这是一个在Python Package Index (PyPI)官网上发布的软件包,名为`d8s_urls`,版本号为0.6.0。PyPI是Python社区最常用的第三方库分发平台,...
Smart URLs会利用这一特性,为每个功能或资源创建有意义的URL模式,如`/posts/{post_id}`,而不是传统的`/post?id=123`。这种URL设计更直观,更易于理解和记忆。 其次,Laravel的路由参数可以用于传递和解析动态...