在上篇随笔Ruby on rails开发从头来(windows)(二)-创建项目和第一个Hello world 中,我们介绍了如何使用InstantRails创建一个项目和编写一个简单的Helloworld页面,今天在上次的基础上,写一个简单的页面跳转。
1. 将app\controllers目录下的say_controller.rb文件的内容改成下面这样:
class SayController < ApplicationController
def Hello
@time = Time.now
end
def goodby
end
end
我们看到和上篇随笔中的内容相比,添加了:
def goodby
end
2. 修改app\views\say目录下的hello.rhtml的内容:
<html>
<p>
Say <a href="/say/goodbye">GoodBye</a>!
</p>
</html>
3. 下面我们要在app\views\say目录下创建一个goodbye.rhtml文件,内容如下:
<html>
<head>
<title>See You Later!</title>
</head>
<body>
<h1>Goodbye!</h1>
<p>
It was nice having you here.
</p>
</body>
</html>
4. 在浏览器地址栏中输入:http://127.0.0.1:3000/say/hello,再试试点链接看看,页面已经可以迁移了。
5. 现在我们再添加由goodbye页面到hello页面的链接,修改goodbye.rhtml的内容为:
<html>
<p>
Say <a href="/say/hello">Hello</a>!
</p>
</html>
再试试看,两个页面已经可以互相跳转了。
6. 在上面的代码中,我们看到页面间的迁移使用的是路径来定位,如果页面存放的位置发生了变化,那么跳转肯定会失败,更安全的是使用下面的方式。
修改hello.rhtml的内容:
<html>
<head>
<title>Hello, Rails!</title>
</head>
<body>
<h1>Hello from Rails!</h1>
<p>
It is now <%= @time %>.
</p>
<p>
Time to say
<%= link_to "GoodBye!", :action => "goodbye" %>
</p>
</body>
</html>
修改goodbye.rhtml的内容:
<html>
<head>
<title>See You Later!</title>
</head>
<body>
<h1>Goodbye!</h1>
<p>
It was nice having you here.
</p>
<p>
Say <%= link_to "Hello", :action=>"hello" %> again.
</p>
</body>
</html>
注意代码里的两句:
<%= link_to "GoodBye!", :action => "goodbye" %>
<%= link_to "Hello", :action=>"hello" %>
可以看到,实际上就是调用了goodbye和hello两个action。