как продлить рельсы - PullRequest
2 голосов
/ 18 октября 2011

Я хочу расширить собственный метод form_for, чтобы он компилировал дополнительный скрытый ввод. Я уже добавил дополнительные настраиваемые поля в конструктор форм, но я не нашел чистого способа действительно расширить форму form_for, добавив в нее дополнительное поведение.

Что я хочу точно знать, так это:

form_for ......: my_custom_attribute => true

если my_custom_attribute равен true, form_for должен создать дополнительное скрытое поле.

Какой самый элегантный способ добиться такого поведения?

Я на рельсах 3.1.

1 Ответ

3 голосов
/ 18 октября 2011

Я написал пост в блоге на похожую тему, который может вам помочь: http://davidsulc.com/blog/2011/05/01/self-marking-required-fields-in-rails-3/

Что вы можете попробовать сделать, это

  1. Создать файл в (например) config/initializers/form_builder.rb
  2. alias :orig_form_for :form_for
  3. Определите ваш метод form_for для вызова оригинала и добавьте дополнительные поля при необходимости (например, на основе класса объекта или параметров)

Вы найдете полезное руководство по работе FormBuilders: http://code.alexreisner.com/articles/form-builders-in-rails.html

и пример пользовательского FormBuilder: http://code.alexreisner.com/code/informant.html

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