Tag: 布局

Rails 3,在布局中找到当前视图

我有一个场景,我希望在布局文件中有渲染视图的名称。 我可以找到解决方案来查找哪个布局将从视图中包装当前视图,但不是相反。 如何找到正在渲染的视图?

在sinatra应用程序中使用自定义布局选项时出现NameError

要在我的应用程序中使用自定义布局文件,我使用以下代码, set :views, File.dirname(__FILE__) + “/../views” set :public_folder, File.dirname(__FILE__) + “/../public” get ‘/’ do if !Db.empty? then haml :home, {:layout => :nosetup-layout} elsif request.ip == “127.0.0.1” then haml :setup, {:layout => :nosetup-layout} else haml :nosetup, {:layout => :nosetup-layout} end end 布局选项似乎有问题 我收到以下错误 undefined local variable or method `layout’ for # 那么,我哪里出错了?

空间填充不等大小的圆圈

这是我的问题: 我需要在canvas中显示一堆圆圈。 存在任意数量的圆,每个圆具有预定义的半径。 圆的总面积始终小于canvas的面积。 我想定位圆圈,使它们占据canvas内可用的最大空间,而不会相互接触。 我的目标是实现视觉上令人愉悦的效果,其中圆圈在canvas内分布均匀。 我不知道这是否真的是“空间填充”,因为我的目标不是最小化元素之间的距离,而是最大化它。 这是我想要实现的一个例子: 我的第一个“蛮力”想法如下: 对于每个圆圈:计算其边界与每个圆圈边界之间的最短距离; 总结所有这些距离,称之为X. 计算所有X的总和。 随机更改圆圈之间的距离。 重做1-3以进行预设的迭代次数并获取在步骤(2)获得的最大值。 然而,这似乎并不优雅; 我确信有更好的方法来做到这一点。 有没有现成的算法来实现这样的布局? 我可以使用任何现有的库(JavaScript或Ruby)来实现这一目标吗? 编辑 这是接受答案的Javascript版本 ,它使用Raphael绘制圆圈。

如何将变量传递给布局?

我有两个版本的应用程序布局,它们只有几行不同。 请考虑以下示例: !!! %html %head # a lot of code here %body # some more code here – if defined? flag and flag == true # variant 1 – else # variant 2 问题是,如何将此标志传递给布局? class ApplicationController {:flag => true} #won’t work 🙁 # … end

Rails中的多级嵌套布局3

我有一个应用程序与全局应用程序布局文件application.html.haml 。 然后,我有多个“控制器堆栈”:用于我们的主站点,管理门户和我们的业务站点。 对于其中的每一个,控制器都在一个模块中,并且都从同一个BaseControllerinheritance。 每个堆栈都有自己的布局文件。 在堆栈中,一些控制器也有布局文件。 我希望所有视图(除非另有说明)在嵌套布局的多个级别内呈现:application,“stack”,“controller”。 例如,对于Site::BlogController#show action,我想要rails来渲染: /site/blog/show.html.haml里面的/layouts/site/blog.html.haml里面的/layouts/site.html.haml里面/layouts/application.html.haml 我很难理解如何将/layouts/site.html.haml插入堆栈。 看起来好像是自动的,rails会在应用程序布局中的控制器布局内呈现动作,但是,我看不到如何将布局“插入”渲染堆栈。 任何帮助都非常感谢,但是,我已经阅读了所有的rails指南都无济于事,所以链接到http://guides.rubyonrails.org/layouts_and_rendering.html#using-nested-layouts并没有多大帮助。

Rails渲染部分和布局在控制器中

我正在重写设计注册控制器的创建操作。 我有两种注册forms,个人或公司,公司有一个名为company_form的字段设置为true,以区分这两种forms。 在表单validation时,我希望呈现正确的表单(以前无论我使用什么forms,它都会回到默认表单)。 我有一个问题,只有部分被渲染(显而易见,因为我只渲染部分),但我需要渲染布局/应用程序文件。 class RegistrationsController < Devise::RegistrationsController def create if resource.company_form render partial: ‘shared/company_signup_form’ else render partial: ‘/shared/individual_signup_form’ end end end 我试过了 if resource.company_form render partial: ‘shared/company_signup_form’, layout: ‘layouts/application’ else render partial: ‘/shared/individual_signup_form’, layout: ‘layouts/application end 但我得到一个错误 Template is missing Missing partial layouts/_application 当我指定布局时为什么要查找部分_application,如何才能获得正确的布局 谢谢 编辑 阅读它说的文档 “请注意,partials的布局遵循与常规partials相同的前导下划线命名,并且与它们所属的部分放在同一个文件夹中(不在master layouts文件夹中)。” 但我希望应用默认布局

我可以直接从routes.rb渲染布局,没有控制器吗?

我想为网站的管理员和公共部门设置一对风格指南。 每个都需要自己的布局,其中包含静态html的混合和对erb partials的调用(因此静态页面不会剪切它)。 我不需要一个控制器来提供这些页面,我不希望什么是有效的开发内容,使其余的代码混乱。 这让我想知道是否有一种直接渲染布局的方法。 免责声明:我很欣赏这不是我应该经常/永远做的事情,我知道有很多争论为什么这是一个坏主意。 我对这是否可能感兴趣。 有没有办法让我直接从routes.rb渲染布局而无需通过控制器?

Ruby on rails:在布局中的特定位置生成特定视图

如果我有一个标记,那么我的所有视图都会在布局中的相同位置呈现。 我可以为不同的视图使用不同的标签吗? 我是怎么做到的? 谢谢