2010-05-19 66 views
0

我想通过制作一个新的form_tag在表单中创建表格。在ApplicationHelper下面的代码失败:在导轨中自定义form_for标记

module ApplicationHelper 

class TabularFormBuilder < ActionView::Helpers::FormBuilder 
    # ... code to insert <tr> tags </tr> 
end 

def tabular_form_for(name, object = nil, options = nil, &proc) 
    concat("<table>", proc.binding) 
    form_for(name, 
    object, 
    (options||{}).merge(:builder => TabularFormBuilder), 
    &proc) 
    concat("</table>", proc.binding) 
    end 
end 

我使用的观点是:

<h1>New project</h1> 
<% tabular_form_for :project, :builder => ApplicationHelper::TabularFormBuilder do |f| %> 
    <%= f.error_messages %> 
    <%= f.text_field :name %> 
    <%= f.text_area :description %> 
    <%= f.text_field :location %> 
    <%= f.submit 'Create' %> 
<% end %> 

我得到的错误是:

NoMethodError在项目#新 显示应用程序/视图/项目/ new.html.erb,其中第5行产生: 未定义的方法错误{:builder => ApplicationHelper :: TabularFormBuilder}:Hash

A ny的想法如何使这个自定义标签的工作?

+0

您是否收到错误? – 2010-05-19 12:01:08

+0

hi poseid, 可以发送一些关于如何调用此方法以及您正在传递的参数的详细信息 干杯, sameera – sameera207 2010-05-19 12:01:20

回答