rails:一个页面上的多个控制器操作

时间:2018-05-25 10:54:34

标签: ruby-on-rails

我有一个简单的rails应用程序用于浏览器书签。
image here
在顶部看到的书签是包含左侧边栏中的子类别文件夹的文件夹。
当点击左侧的文件夹时,会获得该文件夹的书签列表。即带有参数的书签#index。同样是文件夹#index,左侧和顶部有参数。如何在一个页面上渲染所有3个控制器动作?

2 个答案:

答案 0 :(得分:0)

你可以肯定地从不同的动作渲染到一个公共页面,参见示例: -  在bookmarks_controller.rb

def index
  #do your stuffs
  render "path_of_comman_page",locals: {x: "foo", y: "bar"}
end
folder_controller.rb

中的

def index
  #do your stuffs
  render "path_of_comman_page",locals: {x: "foo", y: "bar"}
end

因此,您可以在comman页面访问所有locals变量。像x, y path_of_comman_page可以是/bookmarks/listings,这意味着您要将数据呈现给bookmarks controller listings.html.erb

替代方案可以通过常见的部分来完成,例如

def index
  #do your stuffs...
  respond_to do |format|
    format.html { render partial: "listings/listing", locals: {x: "foo", y: "bar"}}
  end
end

答案 1 :(得分:0)

实际上我想要这样,不知何故用js。也许它也可以用控制器...... 文件夹/ index.haml

.container_top
- @folders.each do |f|
  - if f.is_rootparent?
    -# send ajax to fetch subcategory folders!
    =link_to folder_path(parent: f), remote: true do
      .bookmark_vertical
        %p = f.title
.container_left
  #appendsubcategoryfoldershere