Ruby on rails 雇员再培训局有条件地包括<;%结束%>;标签

Ruby on rails 雇员再培训局有条件地包括<;%结束%>;标签,ruby-on-rails,ruby,erb,Ruby On Rails,Ruby,Erb,我想知道如何有条件地包含“end”标记 我有很多像这样的“形式部分” _form_part_x.html.erb(但这不适合我想做的事情) big_view.html.erb ... _tab1.html.erb _form_part_x.html.erb(如果我知道如何在块中添加 所以基本上,我想我可以调整我的partials,有条件地包括: <% # These lines help determine whether an HTML `form` tag should be

我想知道如何有条件地包含“end”标记

我有很多像这样的“形式部分”

_form_part_x.html.erb(但这不适合我想做的事情)

big_view.html.erb


...
_tab1.html.erb


_form_part_x.html.erb(如果我知道如何在块中添加

所以基本上,我想我可以调整我的partials,有条件地包括

<%
# 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 %>

#如果在不发送本地f的情况下调用partial,我们希望创建HTML`form`标记
更多的东西

#如果在不发送本地f的情况下调用partial,我们希望关闭新创建的HTML`form`标记
对于表单构造,您应该传递到form_specialjust参数:

\u form\u 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 %>

许多形式相关的东西

If case stuff:例如,一个附加的“render_partial”

其他意见:

<%= render partial: 'form_special', params: parameters %>

对于您的Exaplaned特定案例,请避免在表单外部呈现\u form\u part\u x.html.erb,因此它将是一个:

<%= f.text_field(:some_field) %>
<p>Many more stuff</p>

更多的东西

和来电者视图:

<%= form_for(something) do |f| %>
   <%= render partial: form_part_x, f:f %>
<% end %>


你想做什么?我强烈考虑走一条不同的路线,这会使页面/表单/部分的推理更加困难。SuryA好吧,所以我有一些对应于同一模型的标签,但是允许编辑不同的属性。以前,我有一个表格用于每一个不同的标签,但是后来我意识到它是愚蠢的,因为只有与选项卡对应的参数才会被保存。(基本上,每个选项卡都有一个partial,每个partial都在调用其他partial…)。这些“其他partial”也被完全不同的视图调用,一些视图希望partial定义“form_for”,其他视图已经定义了形式_,并将结果f变量传递给“其他部分”抱歉,键盘问题让我在完成之前发布了…所以你是说我应该在所有其他文件中重写代码,以便在重新渲染包含字段的部分之前调用
?这似乎是最干净的方法。否则,一些朋友建议我可以使用pa执行
渲染部分rtial只包含一个
标记…完成。我希望它更好。
<%= 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 %>
<%= f.text_field(:some_field) %>
<p>Many more stuff</p>
<%= form_for(something) do |f| %>
   <%= render partial: form_part_x, f:f %>
<% end %>