所以我有像这样的ActiveRecord模型
class User < ActiveRecord::Base
has_many :posts
end
我有一个Api类从web获取User
的属性并返回一个哈希值,而哈希值又需要一些预处理才能适应用户模型。例如。来自api的响应{response: {id:20, stars:{count:20}}}
需要处理为user.id=20
和user.stars_count=20
。
现在我有两种方法可以很容易地看到做这件事。一种方法是向Api添加一个方法,如get_user,它会使所有处理返回一个带有填充属性的新User
模型。另一种是向用户添加fetch
方法,进行所有处理。
在第一种情况下,我不喜欢我的Api课程会填充很多get_model
方法,例如get_user
,get_post
,get_all_posts_for_user
等等。很快就会变得无法容忍。在第二种情况下,模型充满了许多预处理方法,如fetch
,fetch_all_posts
,看起来也很讨厌。
那么处理这个问题的最佳做法是什么?