需求:
一个页面是用了layout/application.rhtml 做layout,现在要这个页面同时也可以做其他页面的layout。
实现:
1.扩展ActionView
module ActionView
module Helpers
module NestedLayoutsHelper
def inside_layout(layout, &block)
layout = layout.include?('/') ? layout : "layouts/#{layout}"
@template.instance_variable_set("@content_for_layout", capture(&block))
concat(@template.render(:file => layout, :user_full_path => true), block.binding)
end
end
end
end
ActionView::Base.class_eval do
include ActionView::Helpers::NestedLayoutsHelper
end
可以把扩展代码放application.rb或者environment.rb或者单独存为一个文件在适当的地方require即可。
2.使用
layout/layout1.rhtml
<!-- layout1使用application作layout -->
<% inside_layout 'application' do %>
layout1 页面头
<%= @content_for_layout %>
layout1 页面尾
<% end %>
test_controller.rb
class TestController < ApplicationController
layout :layout1
end
适用版本
rails version > 1.2
来源
http://mywheel.net/blog/index.php/2006/08/12/nested-layouts-in-ruby-on-rails/
分享到:
相关推荐
rails_layout, 为各种前端框架生成 Rails 应用程序布局文件 RailsLayout gem使用这里 gem 可以设置你选择的前端框架的布局文件:Zurb基础 5.3Bootstrap 4.0Bootstrap 3.3它还将为 Bootstrap 或者基础设置设计视图。...
shoppe-example, 在 Rails 中使用Shoppe平台的示例存储实现 这是一个 Rails 应用程序,它使用 Shoppe 构建。 它具有一个可以爱的设计,以充分演示Shoppe平台提供的功能以及它在 Rails 应用程序中的。 正在启动要开始...
Ruby on Rails中文指南
当我们需要在 rails 中创建嵌套表单时,我们使用了nested_form gem。 但是如果你使用 AngularJS 作为前端,那么你就不能使用它。 当您希望嵌套表单使用 AngularJS 时,您需要编写自己的代码。 在这个应用程序中,我...
Knock - 为Rails API实现无缝JWT身份验证
rails-assets, 在 Rails 中,资产管理的解决 Rails 资产 Bundler 到 Bower 代理本自述文件涉及项目的开发方面。 访问站点了解如何在你的应用程序中使用 Rails 资产。 插件开发设置git clone git@github.com:tenex/r
基于ruby on rails框架实现的音乐推荐网站项目源码.zip基于ruby on rails框架实现的音乐推荐网站项目源码.zip基于ruby on rails框架实现的音乐推荐网站项目源码.zip基于ruby on rails框架实现的音乐推荐网站项目源码...
Ruby On Rails中文教材(PDF)
rails_email_preview, 在 Rails 中,预览和编辑应用程序邮件程序模板 Rails 电子邮件预览 使用这里 Rails 引擎在浏览器中预览电子邮件。 兼容 Rails 4.2 。电子邮件审阅: 所有电子邮件预览的列表: 代表有两个主题...
nestive, 一个更好的Rails 嵌套可以继承布局插件 Nestive 用于 Rails的嵌套布局帮助器Nestive为你的... 它类似于嵌套布局技术,已经在 Rails 指南中记录,并且在许多其他嵌套布局插件中找到。 这里技术有许多问题,
入门rails的第一个demo
Google Sign-In for Rails 实现将Google登录集成到您的Rails应用中
字体配制文件 博文链接:https://babo.iteye.com/blog/72298
敏捷Rails中文教程 敏捷Rails中文教程 敏捷Rails中文教程
rails指南 中文版
Administrate - 一个框架用于在Rails中创建灵活的、强大的管理仪表板
Webpacker:使用Webpack在Rails中管理类似app的JavaScript模块
NULL 博文链接:https://hlee.iteye.com/blog/587000