Rails直接从视图文件提供页面,而无需合并到application.html.erb中

时间:2017-02-23 11:42:17

标签: ruby-on-rails

对于大多数视图(例如页眉和页脚),我有一些常见的HTML,因此我将它们放在application.html.erb文件中。

现在,我有几个页面的HTML与其他页面没有任何共同之处,因此我想要一种方法从视图文件中完全加载这些页面而不涉及{而不是更改application.html.erb并影响所有页面。 {1}}。

3 个答案:

答案 0 :(得分:1)

在操作结束时添加render layout: false,或者如果要将其用于控制​​器中的每个操作,请在控制器的开头添加layout false

答案 1 :(得分:0)

您必须声明布局false,而不是控制器操作,如:

def action_name
...
    render layout: false
...
end

您可以在http://guides.rubyonrails.org/layouts_and_rendering.html#options-for-render

中查看渲染选项

答案 2 :(得分:0)

有很多方法可以渲染任何布局或其他布局。 默认情况下是application.html.erb布局。

- 在下面的代码中,没有任何布局被调用到任何操作。或者为所有操作调用指定的布局。

class UserController < ApplicationController
  layout :false
  def action
    ..
  end
end

- 在下面的代码中,仅调用特定的操作布局,而对于其他操作,则调用默认布局。

class UserController < ApplicationController
  def action
    ..
    render layout :false
  end
end