gpt4 book ai didi

ruby-on-rails - 如何在 Ruby on Rails 3 中为每个用户连续编号项目?

转载 作者:太空宇宙 更新时间:2023-11-03 17:58:27 25 4
gpt4 key购买 nike

我是 Ruby on Rails 3 的新手,刚开始构建一个小应用程序,用户可以在其中管理他们的项目和任务。

显然,所有项目和任务都必须对公众隐藏,并且应该只对创建它们的用户可见。

虽然我发现这很难实现。例如,如果一个用户创建了他的第一个项目,它将可以通过 URL /projects/1 访问。如果另一个用户在五秒后创建了她的第一个项目,它将出现在 /projects/2 下。

如何为每个用户连续编号项目,始终从 1 或更有意义的数字开始?

另外,我应该如何布局我的资源?

我在想这样的事情:

resources :users do
resources :projects
resources :tasks
end

这是开始的好方法吗?

最佳答案

您可以有两个 id,真正隐藏的 id 和公开可见的 consecutive_id。然后,在您的操作中,您必须执行与此类似的操作:

def show
id = params[:id]

# instead of
# project = Project.find(id)
# you now do this
project = Project.where(user_id: current_user.id, consecutive_id: id).first

# proceed
end

如果您遵循此路径,则必须自己强制执行 ID 的顺序。例如,使用 before_create 回调。

关于ruby-on-rails - 如何在 Ruby on Rails 3 中为每个用户连续编号项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9351216/

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