在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
- 浏览 1327
- 评论(9)
- 论坛回复 / 浏览 (9 / 2833)
- 查看更多
相关推荐
zoomeye_get_urls_without_api 使用方法:python3 zoomeye_get_url_without_api.py zoomeye注册自带10000条api数据可拉取,但很快就被挥霍完了。所以,急需这个不需要apila取数据的东东。使用方法很简单:python3 ...
rails_friendly_urls_test Rails Friendly URLs gem 示例项目这是使用的示例项目的源代码
将此字符串添加到您的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
#Rails 友好的 URL 引擎 Rails Gem 可以轻松地将任何 URL 配置为更友好的 URL。 ##特征 允许将绝对任何 url 自定义为 SEO 友好的 URL。 处理您在原始路由中定义的... gem 'rails_friendly_urls' 跑步 $ bundl
十六进制提交URL到搜索引擎 该项目正在公开测试中,欢迎使用并提交反馈! 项目正公开测试,欢迎使用并提交反馈! 官方交流QQ群: 路线图 文献资料 中国内地用户临时阅读! Hexo插件可将新帖子的URL提交给Google,...
可以使得站内相关页面地址伪静态化,能兼容于zen cart 1.3.9
ultimate_seo_urls Url规则也就越少
python库。资源全名:django_friendlyurls-0.1.0.tar.gz
parse_urls 解析任何格式的URL 说明 此函数可以解析任意格式的网址(格式良好),返回一个包含其各组成部分的一维数组,且不受PHP版本的限制。 参数 url 要解析的网址,支持以下任意格式: domain.com只有域名 //...
zencartultimate_seo_urls安装说明.pdf
Zencart必备插件之一ultimate_seo_urls,好的SEO优化必须需要规范URL,ultimate_seo_urls为Zencart提供URL重写功能。
的优化插件ultimate_seo_urls的使用,以及站内优化
资源内容:Copy-All-Urls_v2.10.crx。解决一次性复制谷歌浏览器所有标签网址的问题。释放双手。 使用方法:安装谷歌chrome浏览器》下载文件双击打开安装
它是django.urls.path()或者django.urls.re_path()实例的一个列表。 依次匹配每个URL模式,在与请求的URL相匹配的第一个模式停下来。也就是说,url匹配是从上往下的短路操作,所以url在列表中的位置非常关键。
'wagtail_favicon',]将路线添加到app.urlsfrom wagtail_favicon.urls import urls as favicon_urlsurlpatterns += [ url(r'^documents/', include(wagtaildocs_urls)), url(r'^search/$', search
在iOS中的第三方浏览器自由打开URLs,利用自定义的UIActivity子类、
天气网北京历史天气链接页:... ```c library(tidyverse) library(rvest) ``` 从网页解析出来 url ... str_subset("^/beijing") # 筛选出正确的 urls = str_c("http://lishi.tianqi.com/", postfix) urls[1:10] ```