我想将我的帖子ID更改为slug。问题是我使用API来调用帖子。这里的例子是我称之为
的帖子localhost:3000/articles/389996
以及我在调用时的API。
"nid": 389996,
"title": "results bundles league",
"created": 1518996078,
"changed": 1518996078,
"field_article_author": null,
"field_article_topic": {
"tid": 8456,
"name": "Sports"
},
"field_tags": [
{
"tid": 147,
"name": "fbl"
},
{
"tid": 184,
"name": "GER"
},
{
"tid": 286,
"name": "Bundesliga"
}
],
问题是如何将文章/ ID更改为文章/标题。我正在使用RAILS。
提前谢谢窥视。
答案 0 :(得分:0)
您可以使用friendly_id gem来实现此目的。如果您是第一次使用它,那么还有railcast。
答案 1 :(得分:0)
你需要创建名为slug的url友好标题。
rake db:migrate
重新迁移数据库# article model
before_save :slug_title
def slug_title
self.slug = title.gsub(" ", "-")
end
# config/routes.rb
resources :articles, param: :slug
# app/controllers/articles_controller.rb
# ...
@article = Article.find_by(slug: params[:slug])
# ...
# article model
extend FriendlyId
friendly_id :title, use: [:slugged, :history, :finders]
def should_generate_new_friendly_id?
title_changed?
end
我个人建议使用Friendly_id作为@ M.Karim提到的。
localhost:3000/articles/results-bundles-league
网址变为:{{1}}