Tag: erb

如何在html.erb文件中运行多行Ruby

我正在使用Ruby on Rails,需要在我的一个html.erb文件中运行一段Ruby代码。 我这样做是这样的: 或者像这样: 谢谢阅读。

如何在JS Rails响应中包含HTML?

我有一个响应HTML和JS(AJAX)查询的FooController: # app/controllers/foo_controller.rb: class FooController < ApplicationController layout 'foo' def bar respond_to do |format| format.html # foo/bar.html.erb format.js # foo/bar.js.erb end end end 支持它的模板: # app/views/layouts/foo.html.erb: …… # app/views/layouts/foo.json.erb: 还有一个我要渲染部分的AJAX模板: # app/views/foo/bar.js.erb: dojo.byID(‘some_div’).innerHTML = ” ‘some/partial’)) %>”; 如果JS模板中只有普通的旧JS(比如alert(‘hi’); ),它就会使用我的JS模板。 但是当我放入render(:partial)时,它会使整个响应使用HTML模板,这意味着它不再是有效的JS。 一种可能的解决方案是使用布局函数: class FooController < ApplicationController layout :choose_layout … private def choose_layout return nil if request.xhr? […]

如何在非rails应用程序中实现erb partials?

我想做这样的事情: require ‘erb’ @var = ‘test’ template = ERB.new File.new(“template.erb”).read rendered = template.result(binding()) 但是如何在template.erb中使用partials?

倾斜(kramdown)在渲染降价时阻止ERB处理

我正在与Middleman建立一个网站。 我在数据文件中存储了大量信息,因为我将在多个页面上使用相同的信息。 (部分不适合我,因为数据中的相同文本可以与不同的HTML标记一起使用,或者针对不同的页面稍作修改。) 我想在数据文件中写下markdown,然后在特定页面的HAML模板中使用它。 当我尝试使用对其他数据文件的引用创建到其他页面的相对链接时,生成的HTML不应该是它应该是什么。 data/pages.yaml : pageA: link: /it-can-change-A.html name: PageA name info: Some other related info pageB: link: /subject-to-change-B.html name: PageB name info: Some other related info pageC: link: /some-C.html name: PageC name info: Some other related info data/faq.yaml : testcase: Some text with [internal link to page A](ref.pageA). And *another* [internal reference](ref.pageB). […]

Rails / ERB中的条件标记包装

在ERB中写这个最可读和/或最简洁的方法是什么? 编写我自己的方法并不可取,因为我想将更清晰的解决方案传播给我公司的其他人。 ==更新== 我使用了Gal的答案的更通用版本,该答案是标签不可知的。 def conditional_wrapper(condition=true, options={}, &block) options[:tag] ||= :div if condition == true concat content_tag(options[:tag], capture(&block), options.delete_if{|k,v| k == :tag}) else concat capture(&block) end end ==用法 “isolated”) do %>

在rails资产管道中的js.coffee文件中使用erb时出错

我有以下代码: /assets/javascripts/home.js.coffee.erb jQuery -> addClickListeners = -> $(document).on ‘click’, ‘#add-chord-link’, addChord $(document).on ‘click’, ‘#remove-chord-link’, removeChord addChord = (e) -> e.preventDefault() console.log(“”) console.log(“”) console.log(‘addChord clicked’) $(‘#chord-choices’).append(‘addedChord’) removeChord = (e) -> e.preventDefault() $(‘#chord-choices select’).last().remove() console.log(‘removeChord clicked’) addClickListeners() console.log(“”)的控制台输出是/assets/rails.png ,这是我所期望的。 但是,每当我包含console.log(“”)我在页面加载时收到错误说明: undefined method `link_to’ for #<#:0x007f9095b78ab8> 为什么这不起作用?

Rails语法错误:意外的keyword_ensure,期待keyword_end

Get Ready 1 %> Voter , go get voter and switch places with them. Voter , when you are ready, click the button marked “Ready” below. <a href="https://stackoverflow.com/questions/17715290/rails-syntax-error-unexpected-keyword-ensure-expecting-keyword-end/” class=”btn btn-primary”>Ready 以上代码似乎导致: ready.html.erb:13: syntax error, unexpected keyword_ensure, expecting keyword_end ready.html.erb:15: syntax error, unexpected $end, expecting keyword_end 这是怎么回事? 这个语法出了什么问题?

在ERB块中的字符串内包含ERB分隔符

我正在开发一个样式指南,显示代码和输出。 它目前的结构使得代码只需要描述一次,并以原始版本和解释版本显示,如下所示: <% code = <<PLACE_THE_EXAMPLE_CODE_BETWEEN_THESE_TWO_LINES_EXACTLY_AS_YOU_WANT_IT_TO_APPEAR #{ image_tag ‘image.png’ } PLACE_THE_EXAMPLE_CODE_BETWEEN_THESE_TWO_LINES_EXACTLY_AS_YOU_WANT_IT_TO_APPEAR %> 这很棒,而且相当容易维护。 问题来自rails帮助程序,如上例中的image_tag 。 视图示例正确显示div中的图像,代码示例显示相关的HTML。 在这种情况下,相关的HTML包含一个锚标记 – image_tag方法的结果,而不是调用本身。 我更喜欢代码示例来显示辅助方法,而不是它们的结果。 我可以通过在文件中指定示例代码并渲染或读取文件来完成此工作。 我更喜欢通过在变量中指定代码来完成这项工作,如上所述,但我似乎无法在erb块内部的字符串内部使用ERB分隔符。 即使最简单的<% foo = '’ %>也不起作用。 我尝试使用语法( 和 ),使用官方文档中的详细信息,但没有取得多大成功。 我能找到的唯一信息就是这里 ,使用<%= " link_to ” %> %> ,在这个用例中不起作用(如果有的话)。 那么,有没有办法在ERB字符串中指定包含ERB结束分隔符( %> )的字符串,还是使用稍微笨重的文件读取方法? 谢谢! 编辑: 我想最终得到的是这个的工作版本: <% code = <<PLACE_THE_EXAMPLE_CODE_BETWEEN_THESE_TWO_LINES_EXACTLY_AS_YOU_WANT_IT_TO_APPEAR PLACE_THE_EXAMPLE_CODE_BETWEEN_THESE_TWO_LINES_EXACTLY_AS_YOU_WANT_IT_TO_APPEAR %> 这样会(继续)输出: 并且将输出: 而不是使用变量时它当前做什么,这是: 我希望用户能够复制代码示例并将其粘贴到新视图中,而无需将HTML转换回生成它们的帮助程序。 我认为我基本上需要的是一个替代的ERB分隔符,就像’和” […]

优雅的方式只显示记录,如果它们存在于轨道ERB中

我发现在显示用户信息时,我在ERB视图中使用了大量重复代码。 沿着这条路线 我基本上是为了避免错误(例如可能没有所有新字段的老用户)而在我看来为此做的一切。 有一个更好的方法吗?

erb中的Ruby三元运算符?

如何让这段代码看起来更好: <%=raw manuscript.uploaded_to_s3? ? "” : “” %> 也就是说,HTML可以放在ERB块之外,这样可以更容易阅读吗?