通知或用户活动日志实现

时间:2013-11-05 07:46:38

标签: ruby-on-rails notifications

应用程序具有为每个用户记录的某些操作,并记录在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)这是一种最佳方式吗?

2)我是否应该将type_description替换为整数值(比如1 -> flagPositive2-> qAccepted)以获得性能优势?

3)我应该遵循哪些最佳实践?

1 个答案:

答案 0 :(得分:1)

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

2)如果您发现字符串查找存在性能问题,则可以执行此操作。一般建议仅在真正需要时才优化性能。

3)只需谷歌“Ruby”,“Rails”,“ActiveRecord”和“Enum”。你会发现很多关于这类问题的不同解决方案的讨论。此网站上存在类似问题,例如Enums in RubyIn Rails, how should I implement a Status field for a Tasks app - integer or enum?