Draper 建议在控制器方法的末尾装饰对象,或者使用它们的decorates_associated
方法自动装饰它们。
我喜欢视图明确声明它期望接收什么的想法(当然,Rails 的其余部分不能像这样工作,但它仍然感觉很好)。因此,我更喜欢在视图顶部而不是在控制器末尾装饰对象:
所以在 users#show 我想做:
- @user = @user.decorate
%h1= @user.full_name
%p= @user.description
而不是像这样在用户控制器中进行装饰
class UsersController < ApplicationController
...
def show
@user = User.find(params[:id]
@user = @user.decorate
end
end
我怀疑以这种方式做事存在一些缓存问题,但感觉很好。如果我遗漏了什么怎么办?我建议的做法是不好的做法吗?