Ruby on rails RubyonRails全局方法
我有一个用户控制器,它由一个名为listfolders()的方法组成Ruby on rails RubyonRails全局方法,ruby-on-rails,Ruby On Rails,我有一个用户控制器,它由一个名为listfolders()的方法组成 class UserController
class UserController
在我拥有的视图中,我能够获取文件夹:
<% @listfolders.each do |userfolder| %>
<tr>
<td><a href="#" target="cstr"><b><%= userfolder.foldername %></b></a></td>
</tr>
<% end %>
问题:我想显示所有页面中的文件夹,如撰写、拖动、垃圾等。。。而不仅仅是为了行动
我该怎么做呢?如果我完全理解,你需要一些
:在你的控制器中的过滤器初始化@listfolders
和@users
变量之前,你可以轻松地移动代码,将文件夹+部分模板加载到单元格组件中,然后从任何视图调用该单元格
选中此项:
它的工作方式与render:partial
调用类似,但会添加一个类似控制器的进程,该进程应加载用户文件夹,然后创建要渲染的部分
另一种可行的方法是在应用程序控制器上有一个方法来加载文件夹。然后将调用该方法的before_筛选器添加到应该呈现文件夹的每个操作。
最后,您可以创建一个共享部分,以便在每个应显示该部分的视图上进行渲染
注意:如果仅显示子控制器的同一控制器的操作上的文件夹,则可以在更特定的控制器中定义加载文件夹的方法 实现这一点的基本标准方法是使用助手
module ApplicationHelper
def listfolders(user_id)
lf = UsersFolders.listfolders(user_id)
render 'users_folders/listfolders', :listfolders => lf
end
end
然后在app/views/users\u folders/\u listfolders.html.erb中
<% listfolders.each do |userfolder| %>
<tr>
<td><a href="#" target="cstr"><b><%= userfolder.foldername %></b></a></td>
</tr>
<% end %>
调用它非常简单:
<% listfolders(session[:id]) %>
<% listfolders(session[:id]) %>