使用Rails助手来渲染部分

Jak*_*old 13 ruby model-view-controller ruby-on-rails view

根据我的理解,帮助程序主要用于从某些特定于视图的逻辑中清除视图.

但是在我目前的新项目(遗留应用程序)中,我偶然发现了许多看起来像这样的帮助程序

def itemprepare
  render :partial => 'items/itemlist_summary'
end
Run Code Online (Sandbox Code Playgroud)

它是否正确?渲染部分给我似乎是你想在视图中做的事情,因为它不包括任何需要抽象的逻辑.

我应该只是内联所有这些助手吗?

dav*_*idb 10

渲染部分不属于帮助器.助手应该帮助你做一些包含逻辑的事情.逻辑不属于控制器,除非它是逻辑渲染部分并决定是否应显示某些内容.


Aje*_*i32 7

虽然你通常不应该使用辅助方法来渲染部分,但我可以看到在某些情况下可能是必要的.对于这些情况,您需要使用以下concat方法:

def itemprepare
  concat(render(:partial => 'items/itemlist_summary'))
end
Run Code Online (Sandbox Code Playgroud)