草庐IT

Ruby ERB - 创建一个 content_for 方法

我目前正在为gem开发ERBView类。对于这个类,我想为ERB模板提供一些辅助方法。像h(string)这样的基本助手没问题。我找到了erbhgem谁帮助我更多地了解上下文的工作原理。但现在我正在尝试创建一个content_for方法,就像在Rails或Sinatra中一样。我第一次使用简单的Proc来捕获Viewblock,然后调用call方法来打印它。一开始它工作得很好。但是在完成View后我看到有线思考,一些内容被打印了多次。所以我看一下SinatraContentForhelper为了了解他们是如何做到的,我复制了这个助手的一些方法。我没有错误,但block返回总是空的...

ruby-on-rails - 如何收集有关 erb 模板处理的 rcov 式信息?

我在从我的rails路由自动生成的一组测试中使用rcov来收集有关死代码(应用程序中从未调用的代码)的信息。这个设置已经为Controller、模型、助手和库代码生成了启发性的结果。不幸的是,rcov不跟踪erb模板中的代码覆盖率,这是有道理的,因为erb模板在正常的执行概念上是一个非常具有挑战性的延伸。Rails本身可以生成关于在模板中引发异常的位置等的良好报告,所以我觉得这是可以收集的数据。我目前正在尝试在rcov中找到我可以Hook的点,但是系统的Ouroboros性质使得很难清楚地看到正在发生的事情。我还怀疑有必要对ERB进行一些猴子修补。如果您对方法或解决方案有任何想法,我将

ruby - 生成动态 ERB 模板?

我正在使用ERB来生成HTML片段。所以我有一个看起来像这样的(html.erb)模板:Artsy在渲染之后,它最终看起来像这样:ArtsyJohnny我有几个相关的问题:假设我希望用户能够以可视方式修改ERB模板,例如,他可以将带有id='name-container'的容器移动到另一部分的模板。为了做到这一点,我应该研究什么?ERB是Ruby的模板引擎,我使用它是因为我拥有的值来自Ruby应用程序。但是,如果我想研究如何执行此操作的替代方案(有一个模板并能够传递它期望的参数,例如@name),我应该寻找什么? 最佳答案 用户可编

ruby - 如何覆盖 Ruby/Sinatra 中的默认内部服务器错误以显示 erb 文件

我想覆盖正常的sinatra内部服务器错误,所以它显示一个erb文件。到目前为止我有这个:set:show_exceptions,:after_handlererror400..510doerb:errorend但它不起作用...有什么想法吗? 最佳答案 这很可能是因为您在开发模式下运行它。不确定你是否可以在那里压制它。但由于大多数时候在生产中显示此错误页面很重要,您只需将RACK_ENV设置为生产即可。例如,如果您这样启动您的应用:bundleexecrubyapp.rb只需添加RACK_ENVRACK_ENV=productio

Ruby: erb throwing error "` result': can't convert String into Integer (TypeError)”

快速背景:我正在设置一个快速而肮脏的模板方案,其中我所有的模板文件都命名为“*.erb”。填充数据驻留在yaml文件中。输出为模板名称减去“.erb”的文件。我没有对erb做太多工作,我收到错误“`result':无法将字符串转换为整数(TypeError)”......这对我来说没有多大意义。这是完成工作的类(generate_interface.rb):#!/usr/bin/rubyrequire'yaml'require'erb'classGenerateInterfacedefinitialize(yamlfile)@yamlfile=yamlfile@erbfiles=Dir

ruby-on-rails - Vim 中 ERB 标签的缩进

我最近转向了Vim,在经历了最初的障碍后我真的很喜欢它。对我来说唯一可能成为交易killer的是erb标签的自动缩进全部搞砸了。我正在使用包含ruby​​.vim和rails.vim的Janus插件包。我还添加了html5.vim,因为有人告诉我它可以帮助解决这个问题。这是它做的乱七八糟的缩进示例:Latitude:Longitude:如有任何建议,我们将不胜感激。似乎必须有一种方法可以使像vim这样的强大编辑器正确缩进。我不想回到sublime或aptana,但这是一个我真的不想没有的功能。 最佳答案 我相信有两种可能的方法可以解

ruby-on-rails - 如何在 ERB 上返回 ActiveRecord Association Proxy

所以我的模型中有一个标准的has_many通过关联,非常类似于这里的问题:LoopthroughActiveRecord::Associations::CollectionProxywitheach我在那个问题中使用了建议,但我认为我在我的ERB文件中遇到了一些问题,以便它显示在我的应用程序中。目前我有以下内容:在这种情况下,成员模型是用户和组织拥有许多成员的模型(@memberships=@user.organizations)。所以@memberships.class返回ActiveRecord::Associations::CollectionProxy::ActiveRecor

ruby-on-rails - 为什么渲染 :json in view. json.erb 导致错误,想要 :partial, :template, :inline

在Controller中:defsome_action@foo='bar'end在some_action.json.erb中:@foo%>这会导致错误:ArgumentError-Youinvokedrenderbutdidnotgiveanyof:partial,:template,:inline,:fileor:textoption.:(gem)actionpack-3.2.10/lib/action_view/renderer/template_renderer.rb:36:in`ActionView::TemplateRenderer#determine_template'(g

ruby-on-rails - 如何在 ERB 模板中将 Ruby 数组渲染为 JavaScript 数组

这个问题在这里已经有了答案:Userubyarrayforajavascriptarrayinerb.Escapingquotes(1个回答)关闭7年前。我需要为erb模板以非常特定的格式呈现Ruby数组。这是因为我正在使用JQcloud使用JQuery构建词云,并且显然对数组格式很挑剔。这里是JQcloud要求格式化JS数组的方式:varword_array=[{text:"Lorem",weight:15},{text:"Ipsum",weight:9},{text:"Dolor",weight:6},{text:"Sit",weight:7},{text:"Amet",weigh

ruby-on-rails - Rails application.html.erb 的 Sinatra 等价物是什么?

application.html.erb是一个应用于Rails中所有View的文件。在某种程度上,它是主文件,所有子文件的样式/结构都在其后。我如何将它与Sinatra一起使用? 最佳答案 你想要的就叫“布局”;只需放置一个名为layout.haml的文件(或layout.erb,或使用您选择的模板语言)在您的View目录中,默认情况下其他View的内容将包含在其中。把yield的输出在各个View的内容应该去的布局中。例如:哈姆:=yieldErb:如果您希望路由的结果使用不同的布局,您可以像这样指定替代布局View的名称:get