Ruby on rails 在渲染视图期间,是否对模板中定义的formBuilder使用form_?

Ruby on rails 在渲染视图期间,是否对模板中定义的formBuilder使用form_?,ruby-on-rails,templates,Ruby On Rails,Templates,我尝试创建一个通用模板,包括一个具有动态内容的表单,例如,由使用模板的视图定义。(我当前的impl.失败,因为视图在渲染期间抱怨f(formbuilder)未定义 [第1.9.6条] 我的模板名为“LAY” request.fullpath do | f |%> 我的看法 <tr><td> <%= f.text_area :txt, :rows => 6, :cols => -1, :style => "width:100%" %>

我尝试创建一个通用模板,包括一个具有动态内容的表单,例如,由使用模板的视图定义。(我当前的impl.失败,因为视图在渲染期间抱怨f(formbuilder)未定义

[第1.9.6条] 我的模板名为“LAY”

request.fullpath do | f |%>
我的看法

<tr><td>
  <%= f.text_area :txt, :rows => 6, :cols => -1, :style => "width:100%" %>
 </td></tr>

6,:cols=>-1,:style=>“宽度:100%”
我的控制器

class Controller < ApplicationController
  layout "LAY"
类控制器
我的问题 在渲染期间,视图rails抱怨没有定义f(formbuilder)


我做错什么了吗(显然),但是我怎样才能坚持实现的想法呢?

为什么需要将其设置为布局?您可以将其设置为模板,然后为所需的每种单独类型的表单创建部分模板。如果这样做,则可以像这样呈现单独的部分,并将其传递给表单生成器

<%= render :partial => @unique_fields_name, :locals => {:f => f} %>
@unique\u fields\u name,:locals=>{:f=>f}%>

我会使用局部模板,但如果你真的想使用局部布局,请检查问题的第二个答案。它解释了如何设置局部布局。此外,还有一个关于渲染布局的伟大章节,你可能应该检查。

我发现它非常简单: 只需在模板中为创建表单,并在视图中为使用字段。 Fields_for为您提供一个formbuilder,但不创建html表单

<%=fields_for @q_object, nil, {:builder => MyFormBuilder} do |f|%>
      <%= f.text_area :txt, :rows => 6, :cols => -1, :style => "width:100%" %>
<%end%>
MyFormBuilder}do | f |%>
6,:cols=>-1,:style=>“宽度:100%”

PS:我找不到将参数从模板传递到视图的方法,比如..

哇!你说得对,我刚刚编辑了我的文本,这样就不会让人困惑,但看起来你找到了解决方案:)很好!
<%=fields_for @q_object, nil, {:builder => MyFormBuilder} do |f|%>
      <%= f.text_area :txt, :rows => 6, :cols => -1, :style => "width:100%" %>
<%end%>