Ruby on rails 在Rails中,哪些良好的视图特定设计模式使处理许多状态变得更容易?
我想消除的反模式是:Ruby on rails 在Rails中,哪些良好的视图特定设计模式使处理许多状态变得更容易?,ruby-on-rails,design-patterns,frontend,Ruby On Rails,Design Patterns,Frontend,我想消除的反模式是: - if !current_user # do something - if !member # do something else - if admin # blah blah blah - else # Bored now. 我怀疑答案与视图助手和部分有关,但我想知道一些最佳实践和设计模式是什么。谢谢 我在控制器上做了很多事情: before_filter :require_user def require_user unless current
- if !current_user
# do something
- if !member
# do something else
- if admin
# blah blah blah
- else
# Bored now.
我怀疑答案与视图助手和部分有关,但我想知道一些最佳实践和设计模式是什么。谢谢 我在控制器上做了很多事情:
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
但根据您的角色(管理员、用户、成员),您可以执行相同的任务。这样,在渲染视图之前,您的控制器将负责它们的指向。谢谢Trip,我想我的用例更多的是基于当前用户的状态,向用户显示灰色按钮、禁用按钮、蓝色按钮还是完全没有按钮。这不是权限或访问控制的问题。您不能通过控制器通过before_筛选器完成相同的任务吗。根据这种方法的情况,它适用于他们在视图中看到的按钮?我可能可以,但我不喜欢在控制器中放置视图相关代码的想法。我在控制器中检查权限,但在我的例子中,UI的许多状态与权限无关,与用户已经或尚未完成的操作有关。在这种情况下,我希望根据用户状态进行切换,或者呈现不同的部分,使用不同的CSS类名,或者只是显示不同的文本。