我刚刚开始为我正在构建的应用程序使用InheritedResources,当我查看它的Github页面时,它说它已被弃用,我应该使用Responders。
我是InheritedResources和Responders的新手,所以我很困惑,当我从文档中看到的是FlashResponders和HTTPCacheResponders时,我怎样才能从Responders获得我在InheritedResources中获得的内容(完整的REST操作基础“模板”代码)?
我也看过这个:
http://blog.plataformatec.com.br/tag/inherited_resources/
这是否意味着我不再需要“REST模板代码”?
答案 0 :(得分:10)
respond_with
(内置于Rails中)与responders
gem的组合使得InheritedResources不再使用。
请查看this blog post,了解如何使用respond_with
创建RESTful控制器的出色解释和演示。大多数控制器动作都减少为单行代码;使用InheritedResources可能有一个没有代码的控制器(因为它隐藏在gem中),但是Jose Valim(InheritedResources的创建者)认为这根据他的引用过于模糊:
“我发现响应者抽象和自定义Rails生成器在隐藏和显示太多逻辑之间提供了完美的平衡。”
如果要自动执行控制器操作的任何其他部分,responders
即可发挥作用,例如,设置Flash消息。
更新:对于下面提出destroy
行动
def destroy
record = Record.find(params[:id])
flash[:notice] = "The record has been destroyed successfully" if record.destroy
respond_with record
end