gpt4 book ai didi

ruby - 通过模型字符串键(而不是 id)的 Rails 自定义路由

转载 作者:数据小太阳 更新时间:2023-10-29 08:49:20 27 4
gpt4 key购买 nike

我正在尝试设置一个应用程序,我可以在其中通过字符串键而不是 id 属性进行路由。为了说明这一点,请考虑以下内容:

我有一个 class Foo 继承自 ActiveRecord::Base 并实现如下:

 class Foo < ActiveRecord::Base
attr_accessible :subject

Subject 是存在于我的数据库中的字符串类型。

我有一个 Controller ,我按如下方式实现:

 class SubjectController < ApplicationController

def index
#snip
end

如您所见,SubjectController 继承自 ApplicationController。

运行 rake routes 为我的主题 提供标准(GET、POST、PUT、DELETE)路由。这是预期的行为,我了解此功能。

我想知道如何扩展 routes.rb 文件,以便我可以使用字符串 url 来访问主题。例如:

我不想输入 localhost:3000/subject/1,而是希望在输入 url 时解析 /:id:localhost: 3000/主题/脾气暴躁的猫说你好

  1. 这个实现是什么样的?
  2. 我应该如何设置我的 routes.rb 文件以适应这种情况?
  3. 我应该如何配置我的应用程序以允许这种类型的实现?

提前谢谢你。

最佳答案

我一直使用 https://github.com/FriendlyId/friendly_id对于这些东西。

如果你喜欢更简单的东西,这就可以了

class Foo < ActiveRecord::Base
def to_param
[id, subject.parameterize].join("-")
end
end

然后你可以访问你的资源:localhost:3000/foos/1-grumpy-cat-says-hello基本上,由于资源的名称仍然以数字开头,它会被 Rails 转换为数字,一切都会无缝运行。

This Gist更详细地介绍了这个主题:)

关于ruby - 通过模型字符串键(而不是 id)的 Rails 自定义路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17287002/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com