Я использую Rails 2.3.2, но я уверен, что это относится и к более новым версиям. Я хотел бы определить пользовательское действие в ApplicationController. Однако я не хочу добавлять настраиваемый маршрут к каждому подклассу контроллера, который использует это действие. Есть простой способ сделать это?Наследование и маршрутизация пользовательского действия от ApplicationController в Rails
Моим первым наклонением было просто направить непосредственно на ApplicationController, так как этот метод не должен быть переопределен никакими подклассами. Но я не думаю, что Rails позволяет вам больше перейти на ApplicationController.
Кто-то предложил что-то вроде этого:
map.connect ":controller/:action", :controller => my_regex, :action => my_regex
Но мне интересно, если это имеет потенциал конфликтует с или главенствующими другие маршруты? Или, если вообще лучший способ? Благодаря!
Причина, по которой я делаю это, - это то, что я хочу, чтобы мое приложение application.js могло выплюнуть теги формы Rails. Мое приложение тяжело в AJAX и js, и мне нужны централизованные методы, которые дают мне Rails-формы, входы и т. Д. В принципе, я пытаюсь создать JavaScript FormBuilder. Итак, в моем приложении application.js я сделаю вызов AJAX для своего пользовательского действия, которое отправит файл js.erb. Этот файл будет иметь класс FormBuilder с методами, которые дают мне html, сгенерированный с помощью меток builder. Поэтому, когда приложение application.js вызывает deleteWithAjax(), я могу создать форму Rails с тегом Rails. – Samo
Это звучит довольно интересная идея, и это может сработать хорошо, но вопрос в том, почему это требует от таких стандартных действий REST расхождения. Вам действительно нужно определить JavaScript-респондентов для ваших методов, которые будут обрабатывать формы должным образом. Вероятно, вы могли бы сделать это намного проще, перехватывая и автоматически обрабатывая генерацию ответа .js, если шаблон не найден, чем путем введения новых действий. – tadman
Это интересная мысль. Не могли бы вы указать мне пример этого? Во всех случаях до сих пор мой ответ на вызов ajax был либо шаблоном js.erb, либо json-объектом. Я хотел бы как возвращенные шаблоны js.erb, так и обработчики для ответов json иметь доступ к моему js form builder. Таким образом, сценарий без шаблонов может оказаться недостаточным. Возможно, другой альтернативой было бы сделать js_form_builder ресурсом, который реагирует только на get, и мой файл application.js может вызвать этот контроллер для загрузки компоновщика форм. – Samo