在 Rails 中,有哪些良好的特定于视图的设计模式可以使处理许多状态变得更容易?

发布于 2024-09-28 15:24:57 字数 215 浏览 5 评论 0原文

我想要消除的反模式是:

- if !current_user
  # do something
- if !member
  # do something else
- if admin
  # blah blah blah
- else
  # Bored now.

我怀疑答案与视图助手和部分有关,但我想知道一些最佳实践和设计模式是什么。谢谢!

The anti-pattern that I want to kill is:

- if !current_user
  # do something
- if !member
  # do something else
- if admin
  # blah blah blah
- else
  # Bored now.

I suspect the answer has something to do with view helpers and partials, but I'm wondering what some of the best practices and design patterns are. Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

何止钟意 2024-10-05 15:24:57

我通过控制器做了很多事情:

before_filter :require_user

def require_user
  unless current_user
    store_location
    flash[:notice] = "You must be logged in to access this page"
    redirect_to login_url
    return false
  end
end

但是根据您的角色(管理员、用户、成员),您可以执行相同的任务。这样,在渲染视图之前,您的控制器将负责将它们定向到哪里。

I do a lot from my controller:

before_filter :require_user

def require_user
  unless current_user
    store_location
    flash[:notice] = "You must be logged in to access this page"
    redirect_to login_url
    return false
  end
end

But depending on your role (admin, user, member ) you could perform the same task. That way, before the view is rendered, you're controller will take care of where they are to be directed.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文