Ruby on rails 在渲染视图期间,是否对模板中定义的formBuilder使用form_?
我尝试创建一个通用模板,包括一个具有动态内容的表单,例如,由使用模板的视图定义。(我当前的impl.失败,因为视图在渲染期间抱怨f(formbuilder)未定义 [第1.9.6条] 我的模板名为“LAY”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%" %>
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%>