我第一次学习如何编程(使用 Ruby),因为我想最终构建一个 Web 应用程序。我很好理解,并且正在完成 2 个不同的教程,但有一个主要问题......
我已经学到了很多关于对象、方法、字符串等的知识,但是到目前为止,我所经历的教程几乎没有提到实际上将它与网站的前端集成,或者在 HTML 中“嵌入”代码。所以我的问题是,这一切到底如何转化为与网站和用户命令的实际交互?我没有看到这里的大局,并且真的可以使用一些指导。
我是不是很想知道这里发生了什么?!
我第一次学习如何编程(使用 Ruby),因为我想最终构建一个 Web 应用程序。我很好理解,并且正在完成 2 个不同的教程,但有一个主要问题......
我已经学到了很多关于对象、方法、字符串等的知识,但是到目前为止,我所经历的教程几乎没有提到实际上将它与网站的前端集成,或者在 HTML 中“嵌入”代码。所以我的问题是,这一切到底如何转化为与网站和用户命令的实际交互?我没有看到这里的大局,并且真的可以使用一些指导。
我是不是很想知道这里发生了什么?!
它不会在 HTML 中调用它。HTML 不是一种语言。HTML 是一种为 Web 设计的输出格式。
就是这么简单。
在您的“简单”红宝石程序中,您的代码输出显示在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
冒着吓跑你的风险,要学习如何(正确地)编写 Web 应用程序,你需要学习:
但是,在深入学习下一个之前,您不需要学习所有这些。
我建议,在你学习 ruby 的时候,至少可以玩一个更简单的框架,例如Sinatra。这样您就可以感觉自己实际上是在学习如何编写 Web 应用程序。
当然,你也可以玩 Rails,但至少在学习如何编写 Web 应用程序方面,它可能有点令人生畏。新手很难区分红宝石的特性和铁轨的特性。
很高兴你开始学习 Ruby!但 Ruby 本身只是一种编程语言。我认为你不想检查 Rails!
http://guides.rubyonrails.org/getting_started.html
Rails 是用 Ruby 编写的,您将编写的很多内容都是 Ruby,因此您可能会很快上手。