- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我想知道如何有条件地包含一个“结束”标签
我有很多像这样的“形式部分”
_form_part_x.html.erb(但这并不适应我想做的事情)
<%= form_for(@model) do |f| %>
<%= f.some_tag(...) %>
<% end %>
在很多 View 中,我只需要渲染其中一个。
现在,问题是我想要我的模型有另一个大 View ,我在其中渲染所有这些部分(form_part_1、form_part_2 等)。在我的例子中,我使用的是 Bootstrap 选项卡,每个选项卡都是一个部分,依次调用多个部分 form_part_x
生成特定字段。
但我不想在我的 HTML 中有多个表单标签,只有一个大表单,所以所有内容都会同时保存。因此在我的render tabX
之前,我编写代码来生成 HTML 标签,并在呈现所有标签后关闭它。
simple_view.html.erb
<%= render 'form_part_x' %>
big_view.html.erb
<%= form_for(something) do |f| %>
<%= render 'tab1', f:f %>
<%= render 'tab2', f:f %>
...
<%= render 'tab5', f:f %>
<% end %>
_tab1.html.erb
<%= render 'form_part_10', f:f %>
<%= render 'form_part_23', f:f %>
_form_part_x.html.erb(如果我知道如何在 <% if %> block 中添加 <% end %>,这可以适应我的工作
所以基本上,我想我可以调整我的部分以有条件地包含 <%= form_for(@model) do |f| %>
:
<%
# These lines help determine whether an HTML `form` tag should be generated or not
f ||= false
if not f then
existing_form = false
else
existing_form = true
%>
<% if not existing_form %>
# If the partial is called without sending a local f, we want to create the HTML `form` tag
<%= form_for(something) do |f| %>
<% end %>
<%= f.text_field(:some_field) %>
<p>Many more stuff</p>
<% if not existing_form %>
# If the partial is called without sending a local f, we want to CLOSE the newly created HTML `form` tag
<!-- I need to add an <% end %> here !
<% end %>
最佳答案
您应该传递给 form_special 只是表单构造的参数:
_form_special.html.erb:
<%= form_for(something) do |f| %>
<p>Many form-related stuff</p>
<%- if case condition depending on the passed arguments as `params` %>
<p>If case stuff: for example an additional `render_partial` </p>
<%- end %>
<% end %>
其他观点:
<%= render partial: 'form_special', params: parameters %>
对于您解释的具体情况,只需避免在表单外呈现 _form_part_x.html.erb 的情况,因此它将是:
<%= f.text_field(:some_field) %>
<p>Many more stuff</p>
和调用者 View :
<%= form_for(something) do |f| %>
<%= render partial: form_part_x, f:f %>
<% end %>
关于ruby-on-rails - ERB 有条件地包含 <% end %> 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27563416/
我在 Rails 应用程序上使用 chessboard-0.3.0.js。由于 Rails Assets 管道的问题,我必须编辑渲染图像的 js 代码的每个部分,例如 Pieces。chessboar
我有一个简单的 fixture.yml 文件: label: body: "" 问题是 ERB 代码被解析为加载 fixture 的一部分,而我实际上希望正文字面意思是“”(未插值)。 如何逃
这是erb3.rb require 'erb' weekday = Time.now.strftime('%A') simple_template = "Today is ." renderer =
name.html.erb 和 name.erb 有什么区别?特别是,是否有任何原因导致 name.erb 不好用? 我知道 name.html.erb 是约定 - 这表示 HTML 模板和 ERB
.erb、.rhtml 和 .html.erb 之间有什么区别? 最佳答案 没什么,真的。这只是 Rails 1 和 Rails 2 之间理念的改变。在 Rails 2 之前,有 file.rhtml
我想知道是否有一个 API 可以很好地支持 eRuby (erb) 和 JavaScript 突出显示、语法分析和代码辅助。 我已经尝试过使用 Aptana 来使用 Eclipse RadRails
我正在尝试在 Rails 应用程序上的示例 ruby 上实现 jquery。我刚刚开始探索js。我知道我在 js/jquery 方面还有很多东西要学。现在有件事让我很困惑。 我有一个 js.erb
我有一个导航栏,它显示未读消息数。未读计数必须在导航栏文本中进行格式化,因此我使用了以下内容: false}).count(:id, :distinct => true).to_s}", conve
我正在编写一个显示代码和输出的样式指南。它目前的结构使得代码只需要描述一次,并以其原始版本和解释版本显示,如下所示: #{ image_tag 'image.png' } PLACE_THE
我的大多数 js.erb 文件底部都包含类似这样的内容: $("#flash_message").html(" "note")) %>"); $("#flash_message").fadeOut(2
我的目标是使用相同的 Controller 调用 html.erb 和 js.erb 文件,但它只调用我的 html 文件。 我的 js 没有被调用。 Controller /categories_c
尝试将* .html.slim View 转换为* .html.erb。 我看了以下两个问题: How can I convert html.slim to html.erb?-从控制台调用时获取un
我正在 Eclipse 中开发 jRuby on Rails 应用程序。我最近安装了 Aptana 以更好地支持 rails 文件。这为大多数文件类型提供了合理的突出显示和支持,包括“html.erb
过去几天我一直在尝试理解 Rails 上 AJAX 的不同方面。在阅读了一些介绍后,我对 Rails 内置的 UJS 功能有了一定的了解。我编写的一个小玩具应用程序的示例,我想在其中引入一些 AJAX
我在不同模型的 ajax 响应之间有重复的 js.erb 代码。我想通过将参数传递到 js.erb 部分来重构重复的 js.erb 代码。 如何从 js.erb 文件渲染 js.erb 部分? 最佳答
我的 Rails 应用程序正在为特定窗口使用 js.erb View 而不是 html.erb View 。这在实践中很好用,但是当我对 capybara 使用 cucumber 测试时,它给我一个错
我尝试使用 rails-erb-loader。 在我的 home.component.ts import templateString from './home.component.html'; 我有
我刚刚花了最后一个小时浏览 Atom 论坛寻找答案。有没有人想通了? 最佳答案 core: customFileTypes: "text.html.ruby": [
我没能找到讨论 create.js.erb 和 destroy.js.erb 如何适合 Rails 3 应用程序的文档。 app > Controller 中这些类型的 Javascript 文件背后
我目前正在尝试将 vue.js v-model 包含到我的 erb 表单输入标签中,但我找不到正确的语法。 这是我的代码目前的样子: 如果有任何想法,我将不胜感激。谢谢! 最佳答案 试试这
我是一名优秀的程序员,十分优秀!