我正在使用Ruby on Rails 3.0.7,我计划使用部分模板。我的应用程序中的所有类都使用相同的部分,所以我必须决定在哪里找到所有这些。
将“全局”共享部分模板放在lib
文件夹中是一个好主意吗?如果不是,选择文件夹的常用做法是什么?关于如何正确命名和加载该文件夹的任何建议?
答案 0 :(得分:54)
标准是将所有共享部分放在app/views/shared
中,并将其引用为
render :partial => 'shared/partial_name'
如果您有一个标准的“列表中的行”部分(例如,对于索引页),您可以使用共享部分,如:
# To render a single object row:
render :partial => 'shared/item', :locals => { :item => @item }
# Or to render them all:
render :partial => 'shared/item', :collection => @items
答案 1 :(得分:16)
Rails 4:
在/app/views/application
然后,您可以轻松地在应用程序的任何位置:
render partial: 'partial_name', variable_name: variable
额外的好处是,您可以通过重新定义/app/views/controller_name/_partial_name.html.erb
中部分含义的内容来覆盖特定视图空间中的部分,然后对部分的调用将引用您更具体的上下文。如果不存在,则会使应用程序级别变为部分。
建议来自Thoughtbot
答案 2 :(得分:4)
惯例是将它们置于app/views/shared
如果你有很多部分内容,我建议你将它们放到该文件夹的子目录中,无论你的应用程序有什么意义,因为在一个目录中有很多部分内容通常不是一个好习惯。