gpt4 book ai didi

ruby-on-rails - 您如何处理当前用户和用户列表?

转载 作者:行者123 更新时间:2023-12-04 06:30:00 25 4
gpt4 key购买 nike

我有一种情况(我猜每个人都很标准),我必须做两件事:

  • 如果用户询问/user 路径,我必须提供他/她的个人信息。
  • 如果用户询问/user/:id 路径,我必须提供有关该特定用户的信息,或者如果 :id 与 current_user id 匹配,则提供当前用户信息。

  • 肯定有很多方法可以做到这一点,但最好的方法是什么?我应该有 2 条不同的路线,例如/show/:id 和/show_current,由不同的操作处理,还是只有/show/:id 并在该操作中进行处理?

    请记住,如果这是当前 View ,我需要渲染一个比另一个 View 更详细的 View 。我认为后者可能是更好的方法,但你怎么看?

    最佳答案

    如果当前用户是 42 岁,那么 /user/42/user将显示相同的信息,但 /user/23将显示 23 数据的精简公开版本。因此,/user/:id 的处理程序将不得不了解 :id 的特殊情况成为当前用户; /user 的处理程序还必须了解这种特殊情况,这就是它所做的一切。

    如果您使用两条路线,那么您将要么复制代码,要么将真实代码包装在额外的层中,要么进行其他一些忙碌的工作。我只是将它们都发送到相同的 Controller 方法,并且可以从以下内容开始:

    user = params['id'] ? User.find(params['id']) : current_user

    然后稍后您可以通过一些简单的方法在一个地方处理请求的用户是当前用户的特殊情况:
    if(user == current_user)
    # show the full blob of information
    else
    # show just the limited public information
    end

    当然,您可以将其分割成一堆小方法,例如 show_current_user_infoshow_other_user_info ,在 Controller 内部。 /user 的处理程序可能只是调用 show_current_user_info ; /user/:id处理程序可以调用 show_current_user_infoshow_other_user_info取决于什么 :id是。这种方法对我来说就像毫无意义的分层。

    关于ruby-on-rails - 您如何处理当前用户和用户列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5527027/

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