简体   繁体   中英

What is rack? can I use it build web apps with Ruby?

ruby newbie alert! (hey that rhymes :))

I have read the official definition but still come up empty handed. What exactly is it when they say middleware? Is the purpose using ruby with https?

the smallish tutorial at patnaik's blog makes things clearer but how do I do something with it on localhost? I have ruby 1.9.2 installed along with rack gem and mongrel server.

Do I start mongrel first? How?

Just to add a simplistic explanation of Rack (as I feel that is missing):

Rack is basically a way in which a web app can communicate with a web server. The communication goes like this:

  1. The web server tells the app about the environment - this contains mainly what the user sent in as his request - the url, the headers, whether it's a GET or a POST, etc.
  2. The web app responds with three things:
    • the status code which will be something like 200 when everything went OK and above 400 when something went wrong.
    • the headers which is information web browsers can use like information on how long to hold on to the webpage in their cache and other stuff.
    • the body which is the actual webpage you see in the browser.

These two steps more or less can define the whole process by which web apps work.

So a very simple Rack app could look like this:

class MyApp
  def call(environment) # this method has to be named call
    [200, # the status code
     {"Content-Type" => "text/plain", "Content-length" => "11" }, # headers
     ["Hello world"]] # the body
  end
end

# presuming you have rack & webrick
if $0 == __FILE__
  require 'rack'
  Rack::Handler::WEBrick.run MyApp.new
end

You would do well to search for other questions & answers that make sense to you. Try "Getting Started with Rails" or "Ruby Web Development". A lot of different topics on this site have been devoted to this exact subject, so you might save yourself some trouble there...

Ignoring the specifics of your question for a minute, it seems like you want to learn Ruby and build web apps. Before you start delving into Rack or Mongrel or anything else, you should know that there are 2 well established frameworks that help build Ruby web applications. The first is Ruby on Rails, and the other is Sinatra. There are many others, but these are the most well documented on Stack Overflow and the internet in general.

Check out the following links for some background...

If you still have a burning desire to answer your question - "what is rack?", you should follow the same process, and end up at this Stack Overflow Answer:

What is Rack middleware?

Good luck!

Very nice answers yes indeed. For my two cents I'll add this because if you know how to get to the documentation behind the scenes here you will find lots of information as I have it stashed here and by no means is all that I have. http://myrackapps.herokuapp.com/

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM