我正在学习如何第一次编程(使用Ruby),因为我想最终构建一个Web应用程序。我很了解它,并且已经完成了两个不同的教程,但是有一个重要的问题......
我已经学习了很多关于对象,方法,字符串等的东西,但到目前为止,我所经历的教程已经让ZERO提到实际上将它与网站的前端集成,或者“嵌入”代码HTML。所以我的问题是,如何将所有这些转化为实际与网站和用户命令进行交互?我没有看到这里的大局,并且可以真正使用一些指导。
我很想知道这里发生了什么事吗?!
答案 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/run
和localhost:8080/bark
查看结果。
如果您发现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的同时,至少使用一个更简单的框架,例如Sinatra。这样你就可以感觉到你正在学习如何编写Web应用程序。
当然,您也可以使用rails,但至少在学习如何编写Web应用程序方面,它可能有点令人生畏。对于一个新手来说,分辨红宝石的特性和铁轨的特性之间的区别可能很难。
答案 2 :(得分:1)
很高兴你开始学习Ruby了!但Ruby in it self只是一种编程语言。我想你不想看看Rails!
http://guides.rubyonrails.org/getting_started.html
Rails是用Ruby编写的,你写的很多东西都是Ruby,所以你可能很快就会开始。