Можно ли вызвать метод 'remote_function' в вспомогательном файле вместо контроллера с использованием Ruby on Rails? - PullRequest
1 голос
/ 04 февраля 2011

Я использую Ruby on Rails 3. Я пытаюсь использовать remote_function, и я хотел бы вызвать метод из моего помощника вместо контроллера.

Итак, в моем окне просмотра у меня есть:

<%= 
    f.text_field :name, :id => "name_id",
      :onkeyup => remote_function(
        :update => "name_div",
        :url => { :action => :method_name }
%>

Это, собственно, вызовет следующий метод из файла контроллера (я также правильно настроил маршрутизаторы):

def method_name
  ...
end

Я хотел бы переместить код method_name в моем файле помощника, а затем вызвать этот метод из помощника вместо контроллера (без настройки маршрутизатора). Возможно ли использовать remote_function? Если да, то как это сделать?

1 Ответ

0 голосов
/ 04 февраля 2011

К сожалению, невозможно использовать remote_function для непосредственного вызова вспомогательного метода. Все, что делает remote_function - это генерирует некоторый JavaScript, который может сделать Ajax-запрос к определенному URL (со стороны клиента). Чтобы этот URL работал, необходимо настроить маршрут и действие контроллера для ответа на него.

Если ваша цель - переместить код из контроллера, вы можете поместить метод действия в модуль и включить этот модуль в один или несколько классов контроллера. Однако вам все равно понадобятся маршруты, указывающие на этот метод / действие в каждом контроллере.

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