настраиваемый тег form_for в рельсах - PullRequest
0 голосов
/ 19 мая 2010

Я хочу создать таблицу в форме, создав новый тег form_tag. Сбой следующего кода в ApplicationHelper:

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 Показаны app / views / projects / new.html.erb, где поднята строка # 5: неопределенный метод `errors 'для {: builder => ApplicationHelper :: TabularFormBuilder}: Hash

Есть идеи, как заставить этот пользовательский тег работать?

1 Ответ

0 голосов
/ 19 мая 2010

Это опубликовано дословно? Поскольку ваш второй блок должен находиться в закрывающем теге end, чтобы он мог обращаться к классу FormBuilder, верно?

Я нашел следующее руководство, которое может помочь: http://ramblingsonrails.com/how-to-make-a-custom-form-builder-in-rails

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...