《Agile web Development With Rails (4th Edition·第四版)》翻译二
2012-01-19 15:03
260 查看
个人翻译的,水平有限,请多包涵。转载请注明出处,谢谢合作!
-------------------------------------------------------------------------------------
2.2 将页面连在一起
现在所做的还是个不成熟的应用,它只有一个页面。来看看怎样为“HelloWorld”应用增加了不起的设计吧!
通常,应用中的每个页面与单个视图相关联,在本例中,我们又要用新方法来控制页面了。我们将为两个方法采用同一个controller。当然,它不需要作为一个新的case,因为我们目前去新建另一个controller是不合理的。
我们已经为这个controller定义了一个goodbye方法,所以现在要做的就是在app/views/say下建立新模板。这次的模叫:goodbye.html.erb,因为模板是根据它相关的动作而命名的。
再次打开浏览器,但这次在http://localhost:3000/say/goodbye地址下打开。你将看到如下类似画面:
现在我们将两个页面连接起来。我们在hello页面上放入一个连到goodbye页面的链接,取代调度算法。在真实的应用中,我们可能想要制作这样的按钮,但目前我们只使用超链接。
我们已知Rails惯于将URL解析到特定controller的action中,所以我们可采用的简单方法是将这个URL惯例应用到超链接中去。
hello.html.erb将包含如下内容:
goodbye.html.erb将指向另一个方向:
这方法当然奏效,但还是有些不牢靠。如果我们将应用挪到服务器上的其他位置,那这些URL将不再是有效的。该方法把我们对Rails URL的假设编入代码之中,将来很可能另一个版本的Rails不再采用此格式。
幸运的是,我们用不着冒险。Rails自带了一堆帮助方法可以在试图模板中使用,这里我们将使用帮助方法“link_to”,它可以为行为创建一个超链接(“Link_to”方法还可以做很多事,现在先让我们温柔的对待它),使用“link_to”,hello.html.erb变为了如下摸样:
这里有个link_to方法调用方在ERB序列<%=---%>中。它创建了一个可以引用goodbye action的链接。Link_to方法的第一个参数将会作为在超链接中显示的文本,第二个参数则告诉Rails要创建一个到goodbye action的链接。
让我们停下来,想想刚才是怎样创建了这个链接。我们写了如下代码:
首先,link_to是个方法调用(在Rails中,我们调用那些让写模板变得更简单的方法,helpers),如果你曾用过java语言,你可能会惊讶在ruby的方法参数周围竟然没有圆括号!没关系,只要你愿意,尽管加上去好了。
say_goodbye_path是Rails预先计算的一个值,用来确定应用视图的路径。它的值等于“say/goodbye”。之后你将看到Rails具有一种能力,就是它可以为所有在应用中用到的路径命名。
OK,现在回来。如果我们在浏览器中打开hello页面,它将显示包含goodbye页面的连接,如下所示:
我们可以在goodbye.html.erb中做相关变化,将它与hello页面相连:
现在,我们已经完成了这个玩具一样的应用。在这过程中我们验证了所安装的Rails功能良好。在这简要概括之后,是时候做个真正的应用了。
游戏时间:
现在是靠你们自己完成的时候了:
--用下列表达式做做试验:
Addition: <%= 1+2 %>
Concatenation: <%= "cow" + "boy" %>
Time in one hour: <%= 1.hour.from_now %>
--调用下面的Ruby方法将返回当前目录的文件列表:
用他在你控制器的行为中设立一个临时变量,然后在相关视图中显示该文件列表。
窍门:你可以采用以下代码显示列表:
你也可以为此列表用上<ul>标签
想找更多窍门请到http://www.pragprog.com/wikis/wiki/RailsPlayTime.
-------------------------------------------------------------------------------------
2.2 将页面连在一起
现在所做的还是个不成熟的应用,它只有一个页面。来看看怎样为“HelloWorld”应用增加了不起的设计吧!
通常,应用中的每个页面与单个视图相关联,在本例中,我们又要用新方法来控制页面了。我们将为两个方法采用同一个controller。当然,它不需要作为一个新的case,因为我们目前去新建另一个controller是不合理的。
我们已经为这个controller定义了一个goodbye方法,所以现在要做的就是在app/views/say下建立新模板。这次的模叫:goodbye.html.erb,因为模板是根据它相关的动作而命名的。
再次打开浏览器,但这次在http://localhost:3000/say/goodbye地址下打开。你将看到如下类似画面:
现在我们将两个页面连接起来。我们在hello页面上放入一个连到goodbye页面的链接,取代调度算法。在真实的应用中,我们可能想要制作这样的按钮,但目前我们只使用超链接。
我们已知Rails惯于将URL解析到特定controller的action中,所以我们可采用的简单方法是将这个URL惯例应用到超链接中去。
hello.html.erb将包含如下内容:
goodbye.html.erb将指向另一个方向:
这方法当然奏效,但还是有些不牢靠。如果我们将应用挪到服务器上的其他位置,那这些URL将不再是有效的。该方法把我们对Rails URL的假设编入代码之中,将来很可能另一个版本的Rails不再采用此格式。
幸运的是,我们用不着冒险。Rails自带了一堆帮助方法可以在试图模板中使用,这里我们将使用帮助方法“link_to”,它可以为行为创建一个超链接(“Link_to”方法还可以做很多事,现在先让我们温柔的对待它),使用“link_to”,hello.html.erb变为了如下摸样:
这里有个link_to方法调用方在ERB序列<%=---%>中。它创建了一个可以引用goodbye action的链接。Link_to方法的第一个参数将会作为在超链接中显示的文本,第二个参数则告诉Rails要创建一个到goodbye action的链接。
让我们停下来,想想刚才是怎样创建了这个链接。我们写了如下代码:
首先,link_to是个方法调用(在Rails中,我们调用那些让写模板变得更简单的方法,helpers),如果你曾用过java语言,你可能会惊讶在ruby的方法参数周围竟然没有圆括号!没关系,只要你愿意,尽管加上去好了。
say_goodbye_path是Rails预先计算的一个值,用来确定应用视图的路径。它的值等于“say/goodbye”。之后你将看到Rails具有一种能力,就是它可以为所有在应用中用到的路径命名。
OK,现在回来。如果我们在浏览器中打开hello页面,它将显示包含goodbye页面的连接,如下所示:
我们可以在goodbye.html.erb中做相关变化,将它与hello页面相连:
现在,我们已经完成了这个玩具一样的应用。在这过程中我们验证了所安装的Rails功能良好。在这简要概括之后,是时候做个真正的应用了。
游戏时间:
现在是靠你们自己完成的时候了:
--用下列表达式做做试验:
Addition: <%= 1+2 %>
Concatenation: <%= "cow" + "boy" %>
Time in one hour: <%= 1.hour.from_now %>
--调用下面的Ruby方法将返回当前目录的文件列表:
用他在你控制器的行为中设立一个临时变量,然后在相关视图中显示该文件列表。
窍门:你可以采用以下代码显示列表:
你也可以为此列表用上<ul>标签
想找更多窍门请到http://www.pragprog.com/wikis/wiki/RailsPlayTime.
相关文章推荐
- Agile Web Development with Rails 翻译(十二 )
- Agile Web Development with Rails 翻译(十三)
- Agile Web Development with Rails 翻译(一)
- Agile Web Development with Rails 翻译(十四)
- Agile Web Development with Rails 翻译(二)
- Agile Web Development with Rails 翻译(十五)
- Agile Web Development with Rails 翻译(十六)
- Agile Web Development with Rails 翻译(三)
- Agile Web Development with Rails 翻译(十七)
- Agile Web Development with Rails 翻译(四)
- Agile Web Development with Rails 翻译(十八)
- Agile Web Development with Rails 翻译(五)
- Agile Web Development with Rails 翻译
- Agile Web Development with Rails 翻译(六)
- Agile Web Development with Rails 翻译(七)
- Agile Web Development with Rails 翻译(八)
- Agile Web Development with Rails 翻译(九)
- Agile Web Development with Rails 翻译(十)
- 《Agile web Development With Rails (4th Edition·第四版)》翻译一
- Agile Web Development with Rails 翻译(十一)