调用API id更改为slug

时间:2018-02-19 03:18:14

标签: ruby-on-rails api

我想将我的帖子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。

提前谢谢窥视。

2 个答案:

答案 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}}