2013-05-09 3 views
0

У меня есть ruby-скрипт как часть приложения rails, которое используется для копирования файлов из какой-либо директории в другую внутри сервера. Я использую Dojo как front-end. У меня есть виджет dojo, который показывает кнопку в порядке. Теперь я хочу, чтобы скрипт выполнялся, когда я нажимаю кнопку Dojo.Сценарий выполнения Rails на сервере на кнопке Dojo Нажмите

Wigdet экстракт:

<input type="button" data-dojo-type="dijit.form.Button" dojoAttachEvent="_onClick:copyfiles" label="Copy Files"></input> 

JavaScript часть функции виджета:

copyfiles: function() { 
window.location = '/files/copy_files' 
} 

в маршрутах у меня есть:

resources :files do 
get :copy_files 

и в files_controller у меня есть:

def copy_files 
    fc = FilesCopier.new 
    source = '/home/myname/sourcefiles' 
    dest = '/home/myname/backup' 
    fc.copy_files(source,dest) 
end 

Но когда я нажимал кнопку, ничего не происходит. Я также пытался запустить код внутри представления, но ничего не происходит.

+0

Должны ли появляться какие-либо ошибки JS в вашей консоли разработчика? Что делает ваш журнал Rails для вас, является ли маршрут ударом? – Novae

+0

У меня нет ошибок. Путь фактически загружен http/1.1 OK, поэтому проблем нет. – zulq

+0

Работает ли ваш метод copy_files, если вы вызываете его, например, непосредственно в консоли? – Mattherick

ответ

0

Я разрешил это. Все, что я должен сделать, чтобы изменить файл маршрутов согласно ниже:

put :copy_files, :on => :collection 

И теперь, даже если я положил его на шоу метода внутри контроллера он будет работать.

 Смежные вопросы

  • Нет связанных вопросов^_^