很多时候,我遇到一种让我感到厌烦的情况,因为我觉得我的解决方案达不到标准。
假设我有一个用户模型。可以有两种类型的用户 - 管理员和普通用户。在这种特殊情况下,我只是将 User 和 Admin 拆分为单独的模型——这很公平。
在某些情况下,当同一模型有多种类型(Foo
可以是绿色、红色、紫色、黄色等)时,我认为处理 10 个不同的模型(如 YellowFoo、GreenFoo 等)没有多大意义 - 所以我添加了一个“ type" 属性,然后将查找正确对象的代码简化为User.where(:type => "some_type")
.
这是在 Ruby on Rails 中可接受的做事方式吗?是否应该将类型设置为符号而不是字符串,以便User.where(:type => :some_type)
看起来更漂亮,或者无论你怎么看,这都是一种黑客行为?
我创建的视图也是如此。在上面的例子中,有一个管理控制器,它有一个与用户完全分开的仪表板,尽管仪表板的代码或多或少是相同的,但有一些例外(但在未来,可能会有更多不同)。这是一种可接受的做事方式还是新的方式?
提前致谢!