Правильный способ вызова скрипта Ruby в HTML

0

Это правильный способ вызвать рубиновый скрипт в HTML файле?

HTML

<form id="cse-search-box" action="mechanize.rb">
<input type="text" id="text" name="text_name" class="mytext" />
<input id="search" type="submit" value="" style="border-style: none; background: url('search.png') no-repeat; width: 50px; height: 50px;">
</form>

Рубин

require 'rubygems'
require 'mechanize'

a = Mechanize.new { |agent|
  agent.user_agent_alias = 'Mac Safari'
}

a.get('http://google.com/') do |page|
  search_result = page.form_with(:name => 'f') do |search|
    search.q = 'Hello world'
  end.submit

  search_result.links.each do |link|
    puts link.text
  end
end

Вместо выполнения кода Ruby он отображает код Ruby в браузере в тексте. Возможно, потому, что я неправильно установил камень Ruby или потому, что неправильно вызываю файл.rb с action="mechanize.rb"?

Теги:
mechanize
gem

1 ответ

1

Ваш подход не является стандартным и требует больше работы.

Действие формы - это URL-адрес, на который будут отправляться данные формы. Что-то нужно ждать, чтобы принять этот HTTP-запрос и вернуть требуемый документ. Что происходит, так это то, что ваш веб-сервер получает запрос на "mechanize.rb", и единственный способ, с помощью которого он справляется с этим запросом, - вернуть содержимое файла.

Для запуска кода Ruby вам нужно что-то вроде рамок для веб-приложений - в этом случае Rails является очевидным выбором. Таким образом, вы можете переписать форму, чтобы использовать URL-адрес типа "/mechanize", и убедитесь, что контроллер обрабатывает этот запрос. Контроллер будет захватывать данные формы и производить некоторый вывод, используя код, похожий на mechanize.rb, но используя представление для вывода вывода.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню