【问题标题】:Correct way to call Ruby script in HTML在 HTML 中调用 Ruby 脚本的正确方法
【发布时间】:2014-04-22 03:27:39
【问题描述】:

这是在 HTML 文件中调用 ruby​​ 脚本的正确方法吗?

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 gem 还是因为我使用 action="mechanize.rb" 错误地调用了 .rb 文件?

【问题讨论】:

    标签: html ruby gem mechanize


    【解决方案1】:

    你的方法不标准,需要更多的工作。

    表单操作是将表单数据提交到的 URL。需要等待接受该 HTTP 请求并返回您想要的文档。正在发生的事情是您的网络服务器收到了对“mechanize.rb”的请求,而它知道处理此请求的唯一方法是返回文件的内容。

    要运行 Ruby 代码,您需要一个类似于 Web 应用程序框架的东西——在这种情况下,Rails 是显而易见的选择。因此,您可以重写表单以使用“/mechanize”之类的 URL,并确保有一个控制器来处理该请求。控制器会抓取表单数据并产生一些输出,使用与 mechanize.rb 类似的代码,但使用视图来呈现输出。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-02
      • 2017-08-20
      • 2015-11-07
      • 1970-01-01
      • 2015-03-09
      • 1970-01-01
      • 2017-05-22
      相关资源
      最近更新 更多