0

该应用程序具有为每个用户记录并记录在 db 表中的某些操作notifications。该表具有以下结构:

user_id, notification_type, credit, timestamp

notification_type 不存储通知的整个文本,而只存储简短的类型描述。

稍后当用户想要查看他的通知时,我使用视图中的辅助方法来获取实际文本。

    def notification_text(type)
     case type_id
             when 'flagPositive'
                 return 'A question you flagged has been marked as correct.'
             when 'qAccepted'
                 return 'A question you added has been accepted.'

             when 'qModerated'
                  return 'You moderated a question.'
             when 'flagReport'
                  return 'You moderated a flag.'
           end
 end

1)这是执行此操作的最佳方法吗?

1 -> flagPositive2) 为了提高性能,我应该用整数值(比如, 2-> qAccepted)替换 type_description吗?

3)我应该遵循相同的最佳实践吗?

4

1 回答 1

1

1) 这在很大程度上取决于您的应用程序和要求。我可以说的是,我有时使用这种方法,到目前为止没有遇到任何问题。

2) 如果您发现字符串查找存在性能问题,您可以这样做。一般建议是仅在真正需要时优化性能。

3) 只需用谷歌搜索“Ruby”、“Rails”、“ActiveRecord”和“Enum”。您会发现很多关于此类问题的不同解决方案的讨论。这个站点上有类似的问题,例如,RubyRails 中的枚举,我应该如何为任务应用程序实现状态字段 - 整数或枚举?

于 2013-11-05T12:58:04.540 回答