Rails URL助手 Rails应该具有灵活性。 结果,通常有多种方法可以实现相同的目标。 路线是该原理在Rails应用程序中如何运作的一个很好的例子。 在本节中,我们将回顾如何利用内置的URL帮助器方法,而不是将路由路径硬编码到应用程序中(以及为什么这是一个好主意)。 路径与路线助手 与路由助手方法相比,使用硬编码路径有什么现实世界的区别? 假设您在纽约市开会,并且想要从城市的一侧到另一侧。 您有几种不同的选择: 步行穿越街道 打车 步行就像在硬编码您的路线。 从技术上讲,它可以工作。 但是,它很慢,很容易出错(一个小错误可能导致城镇的错误部分),而且,如果会议地点发生变化,则需要大量的人工工作才能调整并步行到新的目的地。 乘坐出租车就像使用路线助手:您只需将地址提供给驾驶员,然后让他们为您导航城市街道。 它比走路快,而且,如果在旅途中会议的地址发生变化,则调整的难度将变得不那么慢
2021-02-19 17:07:43 264KB Ruby
1
变量分配 目标 分配局部变量。 指示 您将分配一个名为greeting的局部变量,该变量等于"Hello World" 。 您首先应该通过运行learn来确保测试套件正确运行。 在首次运行测试套件时,您应该看到: Failures: 1) ./variable.rb defined a local variable called greeting and set it equal to 'Hello World' Failure/Error: greeting = get_variable_from_file('./variable.rb', "greeting") NameError: local variable `greeting' not defined in ./variable.rb. # ./spec/spec_helpe
2021-02-19 17:07:42 5KB Ruby
1
Rails动态请求实验室 目标 用动态变量绘制路线 在动作逻辑内的参数中使用route变量 在控制器动作中分配实例变量 使用控制器实例变量来生成动态ERB模板。 建立经典的表演动作/视角 指示 本课中有三个RSpec / Capybara规范。 您可以在spec/features/student_spec.rb找到它们。 确保它们通过而不会破坏其他测试。 为了完成本节,所有规格都应通过。 在本实验中,您将通过为Flatiron School构建学生管理应用程序来使用完整的MVC模式。 在较高的级别上,您将在应用程序中集成以下方案: 用户可以转到/students/2接收ID为2有关学生的信息 应用程序应从数据库中的student记录中呈现值 要记住的关键 确保对show请求路径使用路由变量 如果您在Google周围搜索并发现生成器/支架,请不要在本实验中使用它们 资源 在Learn.
2021-02-19 17:07:42 47KB Ruby
1
Rails form_tag实验室 目标 使用form_tag构建功能性的Rails表单 将路由助手作为参数传递给form_tag 将带有方法的选项散列传递给form_tag 使用text_field_tag和其他表单控件来创建输入 构建一个new动作,该动作将呈现一个提交给create动作的表单 指示 该实验室当前失败的两个规格位于specs/features/student_spec.rb的form page功能内。 在本实验中,您需要构建一个表单来创建一个新学生,将表单重定向回到new视图模板(通常, create操作会将其重定向到index ),然后将表单参数打印到屏幕上。 以下是一些要记住的事项: 绘制一个new并为students资源create路线 将学生值打印到视图模板页面 要记住的关键 查看测试以查看您应该使用哪些字段值 确保使用form_tag帮助器 资源 在L
2021-02-19 17:07:39 42KB Ruby
1
Rails URL帮助器实验室 目标 使用路由助手生成URL 使用:as使用隐式和显式名称绘制路由 用变量绘制路线 使用需要变量的路由助手生成URL 指示 在本实验中,您将开始集成页面之间的链接功能,从而为Flatiron School建立学生管理仪表板。 当前正在通过四个测试,其余的需要实现代码才能开始通过。 为了完成本实验,您将需要完成以下任务: 用户应该能够导航到/students以查看所有学生。 用户应该能够在index页面上单击该学生的姓名,并被带到该特定学生的show页面。 在students表中创建一个名为active的新布尔属性。 (提示:您可能必须四处寻找设置( ahem )默认值(应默认为false)的最佳方法。 用户应该能够转到/students/:id/activate来在true和false之间切换其active属性。 (这只是激活路线,而不是实际视图。
2021-02-19 17:07:28 41KB Ruby
1
验证井字游戏输入 目标 使用if语句或布尔表达式来控制方法的返回值。 使用“帮助器方法”(一种在另一种方法中调用的方法)以使您的代码更具可读性。 概述 在我们以前的井字游戏实验室中,我们构建了一种方法#position_taken? ,检查用户提交的职位是否空闲或是否已填充令牌。 这是一种验证。 我们的#position_taken? 当用户(意外或其他)提交不可用的职位时,该方法可保护我们的游戏免受破坏。 但是,我们的验证仍不完整。 如果用户提交的职位甚至不在董事会上怎么办? 更完整的验证可能看起来像这样: 您必须移至井字游戏板内的某个位置。 该职位必须是空缺的,目前尚未由球员接任。 在本实验中,您将构建一个#valid_move? 接受木板和索引进行检查的方法,如果移动有效,则返回true否则,返回false或nil 。 有效的举动意味着提交的职位是: 出现在游戏板上。
2021-02-19 17:07:26 6KB Ruby
1
目标 利用流量控制的构建方法 阅读和理解测试输出以开发工作程序 更加熟悉测试驱动开发的概念 关于本指南的注释 之前,我们已经介绍了测试驱动的开发,阅读和理解RSpec测试的概念。 每次您运行learn来运行实验室的测试时,您都在运行RSpec测试套件-这就是我们在Learn上构建实验室的方式。 您已经阅读这些测试已有一段时间了,但是TDD是一个重要的话题,我们将在这里进行仔细研究。 仍然没有要求您编写自己的测试。 我们只是想了解测试的目的,稍微了解一下其背后的理念,以及更多关于如何更好地阅读RSpec测试的知识。 请记住,当我们引用RSpec或rspec ,这等效于运行“ learn或“ learn test命令,该命令调用spec的“学习”测试文件。 您必须安装了learn-co gem。 如果您通过“学习”设置环境并且之前使用过“ learn命令(很可能到目前为止已经做了),
2021-02-19 17:07:25 14KB Ruby
1
自述文件 该自述文件通常会记录启动和运行应用程序所需的所有步骤。 您可能要讲的内容: Ruby版本 系统依赖 配置 数据库创建 数据库初始化 如何运行测试套件 服务(作业队列,缓存服务器,搜索引擎等) 部署说明 ...
2021-02-19 17:07:25 66KB Ruby
1
ActiveRecord模型Rails实验室 目标 手动创建迁移 手动创建模型 建立模型实例方法 建立模型 您可以在spec/models目录中找到此应用程序的测试套件,并使用以下命令运行它们: bundle exec rspec 。 该实验室进行测试以确保您的应用程序可以创建记录,并且具有可以在模型上调用的实例方法。 指示 手动创建一个名为“ students的表,该表具有以下列: first_name和last_name –这应该通过创建新的数据库迁移来完成 为学生表创建一个模型,该模型继承自ActiveRecord :: Base 在模型中实现to_s实例方法,该方法将为学生返回串联的名字和姓氏。 例如: first_name: "Daenerys", last_name: "Targaryen" => "Daenerys Targaryen" 在Learn.co上查看 ,并开始
2021-02-19 17:07:15 43KB Ruby
1
井字游戏中的位置 目标 定义一个方法来更新作为参数传递给它的数组。 定义一种以if/else语句形式使用控制流来操纵数组的方法。 概述 我们已经有显示游戏板的方法(映射到数组的索引),以及要求用户输入并相应地填写游戏板上位置的方法。 但是,在我们的程序可以填写董事会职位之前,我们需要确认该职位尚未填写“ X”或“ O” 在本实验中,我们将添加#position_taken? 井字游戏的方法。 该方法将负责根据井字棋盘评估用户的输入,并检查该位置是否被占用。 例如,如果用户输入他们想要填写位置"2" ,我们将采用字符串"2"并将其转换为板索引1。然后将索引传递给我们的#position_taken? 并检查该职位是否空缺,或者是否包含“ X”或“ O”。 如果职位空缺,则该方法应返回false (即“未采取”);否则,该方法应返回false 。 否则将返回true 。 基本上,我们有
2021-02-19 17:07:14 6KB Ruby
1