Ruby on rails 如何在助手中使用form_标记?

Ruby on rails 如何在助手中使用form_标记?,ruby-on-rails,Ruby On Rails,我有一个用于生成表单的助手。用于生成表单字段的参数被传递到帮助器中。我不知道如何在模板之外使用块 例如: def generate_form(path, fields) form_tag(path, method: :get) do # what do I do in here? end end 当我在块中呈现部分时,呈现的网页中不会出现任何内容。如果我将一组标记(field_标记、text_field_标记等)连接在一起,页面上就会出现原始html 我使用的是

我有一个用于生成表单的助手。用于生成表单字段的参数被传递到帮助器中。我不知道如何在模板之外使用块

例如:

def generate_form(path, fields)
    form_tag(path, method: :get) do
        # what do I do in here?
    end
end
当我在块中呈现部分时,呈现的网页中不会出现任何内容。如果我将一组标记(field_标记、text_field_标记等)连接在一起,页面上就会出现原始html


我使用的是Rails 3.1.0

Rails元素帮助程序返回字符串,因此您可以执行以下操作:

def generate_form(path, fields)
  s = form_tag(path, method: :get) do
    p = input_tag
    p << submit_tag #(everything will be wrapped in form tag)
    p #returns p from block
  end
  s.html_safe #returns s and avoids html escaping
end
def生成表单(路径、字段)
s=表单_标记(路径、方法::get)do
p=输入标签

p我不知道安全缓冲区。发生的事情是,我用一个字符串作为初始值进行了一次注入:fields.inject(“”)。我把它改为fields.inject(''.html_-safe),现在可以工作了。