【问题标题】:Rails Dynamic Edit Path vs. Static Edit PathRails 动态编辑路径与静态编辑路径
【发布时间】:2014-02-23 08:25:10
【问题描述】:

目前我正在研究一个 Rails 项目,同时正在阅读 Michael Hartl 的 Ruby on Rails 教程。我想我对一切都有基本的了解,但我很难理解他为什么将编辑路径设置为 "users/edit/:id" 而不是 "user/edit"

为每个人提供一个静态编辑链接而不是根据 :id 查找用户不是更有意义吗?毕竟,当前用户已经登录了,为什么在可以编辑当前用户的情况下使用 :id 来引用正在编辑的用户呢?

也许我错过了一个明显的好处,但我很想听听一些关于这方面的最佳做法。

提前致谢。

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4


    【解决方案1】:

    在 Rails 中,资源是可编辑的实体,例如,您可以将产品作为资源并根据需要编辑其产品规格。现在,您提到的路由方案 users/4/edit 使查找此类资源的资源 id 的任务变得更容易。在您的情况下,用户 id 可以通过 rails 直接从 url 中选取(例如 if route users/:id/edit 然后 :id 将有用户 id)

    没有必要遵循那种路由风格,因为如果你提到用户/编辑更有意义,也更方便。但接下来的挑战在于如何确定当前用户的用户 ID?您可以为此或根据您的 Rails 应用程序设计使用会话变量或其他东西。

    希望这会有所帮助!

    【讨论】:

    • 是的,这是有道理的。谢谢!
    【解决方案2】:

    因为用户只能编辑自己的个人资料。不允许编辑其他用户的个人资料。 (例如他可以关注users/3/editusers/4/edit,但没有任何编辑权限。因此,我们只使用自己的users/edit限制了这些路径

    【讨论】:

    • 没错,但如果只允许用户编辑自己的个人资料,为什么还要使用数字呢?
    • 默认情况下在 Rails 中命名的 CRUD 约定:resources_name/:id/:action,我们希望为用户覆盖它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多