-
Notifications
You must be signed in to change notification settings - Fork 1
/
README.html
221 lines (207 loc) · 5.6 KB
/
README.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
<!DOCTYPE html>
<!-- this document lives at: http://www.ecst.csuchico.edu/~tyson/465/lectures.html -->
<html>
<head>
<title>Rails Hello World</title>
</head>
<body>
<h1>Rails Hello World</h1>
<p>
You can implement this (and all other example applications) on your AWS server or on your own computer.
</p>
<p>
Your own computer would need rvm, ruby, and rails installed, but does not need Apache. To install on your own computer, follow steps 2-4 of the "Server and Development Machine Setup" instructions in the <a href="http://www.ecst.csuchico.edu/~tyson/classes/465.f14/aws_server_setup.html">Server Setup instructions</a>.
</p>
<hr>
<h3>Step 1: Create "empty" rails application</h3>
<p>
Create directory for your rails applications.
</p>
<blockquote>
$ cd ~/rails
</blockquote>
<p>
Use the rails "new" command to create a new application called "hello"
</p>
<blockquote>
$ rails new hello<br>
$ cd hello<br>
</blockquote>
<p>
this create lots of files in the directory ./hello (good thing you wrote rfind)
</p>
<p>
as a beginner, you will be working with a small subset of these files
</p>
<ul>
<li>db -- this is where the database will live</li>
<li>config -- this is where configuration files live</li>
<li>app -- this is where the application lives</li>
<li>app/assets -- this is where .css, javascript, and other assets (files) live</li>
</ul>
<p>
The directories where most of your work will go:
</p>
<ul>
<li>app/controllers</li>
<li>app/models</li>
<li>app/views</li>
</ul>
<br>
<hr>
<h3>Step 2: run the application in development mode </h3>
<blockquote>
$ rails server<br>
-or-<br>
$ rails s<br>
</blockquote>
<p>
The "rails" utility does a lot of different tasks. First we used it for creating a new rails applications. Now we are using it to run a development server.
</p>
<p>
When run in development mode, a specialized http server (WEBrick) is used. It hosts the rails application in the current directory on port 3000 (Apache does not need to be installed).
</p>
<p>
If you are developing on a remote server (such as your AWS server)
navigate to port 3000 on the hosting machine
</p>
<blockquote>
e.g: http://54.69.30.218:3000/
</blockquote>
<p>
If you are developing on your local computer, navigate to:
</p>
<blockquote>
http://localhost:3000
</blockquote>
<p>
by default rails is showing us the "you have not done anything yet page"
</p>
<hr>
<h3>Step 3: Add a new default landing page</h3>
<p>
We can add a new default by creating the file hello/public/index.html
</p>
<p>
<!DOCTYPE html><br/><html><br/><body><br/><h1>Rails hello application public/index.html</h1><br/></body><br/></html>
</p>
<p>
reload the page (in your browser)
</p>
<p>
This isn't very interesting. Apache will serve an html file, but at least we know rails is running.
</p>
<p>
next we will create a rails view
</p>
<p>
NOTE: from here on, "hello" will be used for ~/rails/hello
</p>
<blockquote>
$ rm hello/public/index.html # so rails won't default there anymore
</blockquote>
<hr>
<h3>Step 4: Create a rails "home" view</h3>
<p>
make a directory for the "home" (default) view
</p>
<blockquote>
$ cd hello/app/views<br>
$ mkdir home<br>
$ cd home<br>
</blockquote>
<p>
your current directory should be hello/app/views/home
</p>
<p>
add the following to the new file index.html.erb
</p>
<blockquote>
$ vim index.html.erb
</blockquote>
<p>
<h1>Hello Utility -- app/views/home/index.html.erb</h1>
</p>
<hr>
<h3>Step 5: Create a route</h3>
<p>
Now we need to tell rails that when the user navigates to this
application it should show this page
</p>
<p>
this requires two things: a route and a controller
</p>
<p>
add the following to hello/config/routes.rb (add it inside the .do loop)
</p>
<blockquote>
$ vim hello/app/config/routes.rb
</blockquote>
<p>
root "home#index"
</p>
<p>
we are telling rails that when someone asks for the "root" they should be directed to the index operation of the home controller
</p>
<p>
You can see all the routes for a rail application using the "rake" utility
</p>
<blockquote>
$ rake routes
</blockquote>
<p>
NOTE: we could have called this route and controller anything we wanted. But "home" is the conventional name, and rails is all about convention.
<p>
<hr>
<h3> Step 6: Create a home controller</h3>
add the following text to the new file home_controller.rb
</p>
<blockquote>
$ vim hello/app/controllers/home_controller.rb
</blockquote>
<p>
class HomeController < ApplicationController<br>
def index<br>
# don't need to do anything here (too simple of an application). Usually will do work here.<br>
end<br>
end
</p>
<p>
reload the page
</p>
<hr>
<h3>Step 7: Add come functionality to the simple home view created above</h3>
<p>
Add the following embedded ruby to index.html.erb
</p>
<blockquote>
$ vim hello/app/views/home/index.html.erb
</blockquote>
<blockquote>
<%= "Hello! the date is " + `date` %>
</blockquote>
<p>
reload the page
</p>
<p>
Code in <%= %>is executed by the ruby interpretor. The results are placed in the .html file.
</p>
<p>
Code in <% %>is executed by the ruby interpretor. The results are placed in the .html file.
</p>
<p>
Try adding some more ruby code to index.html.erb
</p>
<hr>
<h3>Review:</h3>
</p>
<ol>
<li>create new rails application: $ rails new hello</li>
<li>create a home view (default view) index.html.erb</li>
<li>create a route from "root" to the new home view</li>
<li>create a home controller</li>
<li>gave the home controller some functionality by embedding ruby code</li>
</ol>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
</body>
</html>