图解 Ruby on Rails(四)

作者: 海浪~~
发布时间:2015-07-13 11:29:40

图解 Ruby on Rails(四)

创建recipes

我们的菜谱要包含食物,所以我们要在数据库内创建一个表来保存它们。


MySQL-Front左侧面板中,右击你刚刚创建的cookbook数据库,然后选择弹出菜单的New>Table….(如图21)

21. 创建一个新表

表的名字为recipes (如图 22).


22. 添加表对话框

重要提示:MySQL-Front将自动创建名为Id的主键,但Rails更喜欢用id(全是小写)来调用它。稍后我会祥细地解释,但现在只是修改它。在左侧面板中,选择你刚创建的recipes表。在右侧面板中,右击Id字段,选择Properties(如图23),然后更改名字为id

23. 重命名主键

recipe添加字段

现在我们有了recipes表,我们可以开始添加字段()来保存recipe数据。首先我们创建titleinstructions字段。最后,我们会需要更多字段,但现在却不用。

选择recipe表,在右侧面板的空白区域右击,并选择New>Field(如图24)

24. 添加个新字段

创建recipetitle字段为varchar(255),并且不得为null,因为每个recipe必须有title。图25显示了弹出菜单的选项。

25. 添加title字段

重复上面创建instructions文本字段的步骤,如图26所示。

26. 添加个instructions字段

现在recipe表应该像图27


27. 修改recipe

激动人心的时刻

我们已做这么多事,但并不让人激动。别急这就开始了。现在我们开始我们cookbook应用程序。

创建Model

首先,创建一个Recipe model类,它持有来自己于数据库recipes表的数据。图28显示在哪里有些什么。

28. Recipe model

打开命令行窗口,定位到cookbook目录(c:railscookbook),并运行这个命令:

ruby scriptgenerate model Recipe

这将创建一个名为recipe.rb的文件,它包含了用于定义Recipe类的构架。右击这个文件并选择Edit命令。(29)

29. recipe.rb文件的内容。

这个空的类定义是recipe商业对象,该对象由Rails来映射数据库内的recipes表。稍后我说出它的意思你就会看得更明白了。现在,在开始程序的魔术之前要说一下,我们使用Rails的命名约定:单数形式的model类名字(Recipe)映射到复数形式的数据库表(recipes)Rails巧妙地使用了英文的复数,所以Company映射companiesPerson映射people,等等。

进一步说,Rails动态地用组装Recipe类,即用recipes表内的行来关联该类的方法,用recipes表内的列来关联该类的属性。

马上,你会看到Recipe类和recipes表之间这种动态概念的戏剧性示范。

现在我们的工作快完成了。我们需要再创建一个recipe controller(30),它通过标准的CRUD操作来管理数据库内的recipes表:创建,读,更新,和删除。Rails做起来比你想要容易得多。

30. 本地环境下的Recipe controller

打开命令行窗口并到cookbook目录内(c:railscookbook),然后运行这个命令:

ruby scriptgenerate controller Recipe

这会创建一个名为recipe_controller.rb的文件,它包含了用于RecipeController类定义的构架。右击这个文件,选择Edit,添加如图31样的内容。

31. RecipeController 内的一行代码

这个简单的代码行将激活数据库表。它定义了所有CRUD操作的动作,会立即允许我们创建,读取,更新和删除我们数据库recipes表的内容。

打开浏览器输入http://127.0.0.1:3000/recipe/new. 。你应该看到如图32一样的东西。

32. 创建一个新的recipe 页面。

来源:http://www.cnblogs.com/wengjinbao/articles/652029.html

推荐: