什么时候开始一起走?

时间:2012-04-10 00:33:05

标签: ruby

我正在学习如何第一次编程(使用Ruby),因为我想最终构建一个Web应用程序。我很了解它,并且已经完成了两个不同的教程,但是有一个重要的问题......

我已经学习了很多关于对象,方法,字符串等的东西,但到目前为止,我所经历的教程已经让ZERO提到实际上将它与网站的前端集成,或者“嵌入”代码HTML。所以我的问题是,如何将所有这些转化为实际与网站和用户命令进行交互?我没有看到这里的大局,并且可以真正使用一些指导。

我很想知道这里发生了什么事吗?!

3 个答案:

答案 0 :(得分:2)

它不会在HTML中调用它。 HTML不是一种语言。 HTML是为Web设计的输出格式。

就这么简单。

在“简单”ruby程序中,代码的输出显示在STDOUT - 控制台,屏幕等上。

使用ruby解释器驱动的服务器会转换您的ruby代码并将其作为HTML呈现给客户端。您可以通过指定扩展名(在rails中)并使用code tags围绕代码来定义应“翻译”哪些文件。

实施例

这是一个用纯ruby编写的简单webrick示例

# in server.rb
#
require 'webrick'
server = WEBrick::HTTPServer.new(:Port=>8080)

trap 'INT' do server.shutdown end

class Dog
  attr_accessor :name
  def initialize(name)
    self.name = name
  end
  def bark
    "#{name} is barking!"
  end
end

dog = Dog.new("Fido")

server.mount_proc('/bark'){ |req, resp|
    resp['Content-Type'] = 'text/html'

    resp.body = "#{dog.bark}"
}

server.mount_proc('/run') do |req,resp|
    dog.instance_eval do
      def run_away
        "#{name} is running away..."
      end
    end

    resp['Content-Type'] = 'text/html'
    resp.body = "#{dog.run_away}"
end

server.start

运行ruby server.rb并转到localhost:8080/runlocalhost:8080/bark查看结果。

编辑 - Sinatra示例

如果您发现webrick示例难以理解 - 请查看Sinatra

# in sinatra_example.rb
require 'sinatra'

class Dog
  attr_accessor :name
  def initialize(name)
    self.name = name
  end
  def bark
    "#{name} is barking!"
  end
end

fido = Dog.new("Fido")

get '/bark' do
  fido.bark
end

get '/run' do
  fido.instance_eval do
    def run_away
      "#{name} is running away!"
    end
  end

  fido.run_away

end

答案 1 :(得分:2)

冒着吓跑你的风险,要学习如何编写Web应用程序(正确),你需要学习:

  • 你将要写的语言(ruby)
  • 您的应用程序框架(rails?或sinatra?)
  • HTML
  • CSS
  • 的javascript
  • HTTP协议,它是浏览器和服务器之间通信的基础

但是,在进入下一阶段之前,你不需要学习其中的所有内容。

我建议,在学习ruby的同时,至少使用一个更简单的框架,例如Sinatra。这样你就可以感觉到你正在学习如何编写Web应用程序。

当然,您也可以使用rails,但至少在学习如何编写Web应用程序方面,它可能有点令人生畏。对于一个新手来说,分辨红宝石的特性和铁轨的特性之间的区别可能很难。

答案 2 :(得分:1)

很高兴你开始学习Ruby了!但Ruby in it self只是一种编程语言。我想你不想看看Rails!

http://guides.rubyonrails.org/getting_started.html

Rails是用Ruby编写的,你写的很多东西都是Ruby,所以你可能很快就会开始。