文章图片
下面列出了Ruby on Rails面试中最常见的问题和答案。
1)什么是Ruby on Rails?
Ruby on Rails是用Ruby语言编写的服务器端Web应用程序开发框架。与其他语言和框架相比, 它可使你编写更少的代码。它包括根据MVC模式创建数据库支持的Web应用程序所需的一切。
欲了解更多信息, 请点击此处
2)解释在Rails中干吗?
DRY代表” 不要重复自己” 。这是软件开发的原则, 其中指出:” 每条知识都必须在系统中具有权威, 明确, 单一的表示形式。如果同一部分代码不会一次又一次地重复, 则代码将更具可维护性, 可扩展性。和更少的越野车。
欲了解更多信息, 请点击此处
3)Ruby on rails的当前版本是什么?
Rails 5.0.1于2016年12月21日发布。它引入了Action电缆, Turbolinks 5和API模式。
4)解释Rails中的CoC
DRY代表约定优于配置。它对在Web应用程序中执行许多操作的最佳方法提供了不同的意见。
欲了解更多信息, 请点击此处
5)谁开发了Rails?
Ruby on Rails由David Heinemeier Hansson(DHH)创建。
欲了解更多信息, 请点击此处
6)安装Ruby on Rails的三种方法是什么?
有三种安装Ruby on Rails的方法:
- 使用rbenv(推荐)
- 使用rvm
- 从来源
7)命名一些Rails IDE或编辑器。
Ruby on Rails可以与简单的文本编辑器或IDE结合使用。
下面列出了一些Rails IDE:
- 文字伴侣
- 和
- Intellij IDEA
- NetBeans
- 日食
- Heroku
- Aptana Studio
- 红宝石矿
- Kuso IDE
- 科莫多巨蜥
- 雷德卡
- 阿卡迪亚
- 冰编码器
8)什么是Rails脚本?命名其中一些?
Rails提供了一些用于开发Rails应用程序的出色工具。这些工具从命令行打包为脚本。
以下是Rails应用程序中使用的最有用的Rails脚本:
- Rails控制台
- WEBrick Web服务器
- 发电机
- 移居
9)Ruby on Rails有什么缺点吗?如果是, 请提及他们。
Ruby on rails不支持的一些功能包括:
- 链接到多个数据库。
- 在数据库中包含外键。
- 一次建立与各种数据库的连接。
- 与Soap相关的Web服务。
Ruby中的超级函数用于调用原始方法。它调用当前方法的超类实现。
11)什么是Rails中的Active Record?
完美的ORM将数据库关系数据的详细信息隐藏在对象层次结构的后面。在Rails中, ORM由Active Record实现, Active Record是Rails库中最关键的组件之一。
使用Active Record时, 你不必再处理诸如表, 行或列之类的数据库构造。你的应用程序仅处理类, 属性和对象。
欲了解更多信息, 请点击此处
12)谁设计了Rails中的Active Record?
Active Record基于Martin Fowler创建的设计模式。仅通过这种设计模式, Active Record便获得了它的名字。即使行数更少, 其代码也能很好地工作。它很容易使用。如果在数据库和类中遵循正确的命名方案, 则Active Record Rails应用程序根本不需要任何配置。
欲了解更多信息, 请点击此处
13)解释Rails中的模型吗?
这些模型是Rails中的类。该子系统在ActiveRecord库中实现。该库提供了数据库表和操作数据库记录的Ruby程序代码之间的接口。
欲了解更多信息, 请点击此处
14)使用哪个命令创建迁移?
C:\ruby\application>
ruby script/generate migration table_name
<
/div>
<
hr/>
<
h3 class="h3">
15) Explain the role of 'defined' operator. <
/h3>
<
p>
The 'defined' operator is used to check whether the expression passed has been defined or not.<
/p>
<
hr/>
<
h3 class="h3">
16) What is the purpose of the super call? <
/h3>
<
p>
When we make a call to super, the parent method which has the same arguments as child one is invoked.<
/p>
<
hr/>
<
h3 class="h3">
17) Write the syntax of each iterator.<
/h3>
<
p>
The syntax of each iterator is<
/p>
<
div class="codeblock">
<
textarea name="code" class="ruby">
collection.each do|vairable|
code
end
18)哈希是什么?
哈希是键值对的集合。
19)如何创建块?
创建块的语法为:
block_name
{
??.
??
}
20)变量的命名约定是什么?
变量的名称以小写形式给出, 下划线将名称中的不同单词分隔开。
21)proc和块之间的主要区别是什么?
过程是对象, 而块是代码的一部分。
22)字符串可以用单引号和双引号表示。两者有什么区别?
不允许单引号字符串表示形式执行字符串插值和处理ASCII转义码。
23)解释Rails迁移。
借助Rails迁移, Ruby可以更改数据库模式。
24)你将如何为该主题创建控制器?
你必须使用以下命令为主题创建控制器:
C:\ruby\library>
ruby script/generate controller subject
25)在Rails中解释视图?
视图代表应用程序中特定格式的数据。该子系统在ActionView库中实现。该库是基于嵌入式Ruby(Erb)的系统, 该系统定义用于数据表示的表示模板。
欲了解更多信息, 请点击此处
26)在Rails中解释控制器吗?
Controller将流量定向到视图和模型。该子系统在ActionController库中实现。该库是位于ActiveRecord和ActionView之间的数据代理。
欲了解更多信息, 请点击此处
27)在Rails中解释RVM?
RVM代表Ruby Version Manager。它是一个命令行工具, 可让你有效地安装, 管理和使用不同的Ruby环境。使用RVM, 你可以轻松安装不同版本的Ruby, 并在它们之间快速切换。
语法
RVM的基本语法是
rvm command_options command ruby_to_act_on
欲了解更多信息, 请点击此处
28)Rails中的Gemsets是什么?
Ruby中的Gems用于扩展核心Ruby发行版的功能。它们在程序中添加了特定功能。某些宝石也随Ruby安装一起安装, 以提供称为宝石集的特定环境。你可以在系统中安装同一gem的不同版本。
要了解Ruby中所有可用的gem, 请使用以下命令:
rvm gemset list
欲了解更多信息, 请点击此处
29)编写命令以在Rails中更新RVM。
要升级RVM, 请使用以下命令:
rvm et head
欲了解更多信息, 请点击此处
30)在Rails中解释捆绑器。
Rails捆绑器通过跟踪所需的合适宝石为应用程序提供恒定的环境。
要使用捆绑程序, 请使用以下命令:
gem install bundler
欲了解更多信息, 请点击此处
31)为什么我们在Rails中使用迁移?
迁移通过使用DSL以一致且有组织的方式更改了应用程序的数据库架构。
创建迁移文件的语法:
application_dir>
rails generate migration table_name
欲了解更多信息, 请点击此处
32)编写命令以运行迁移。
rake db:migrate
欲了解更多信息, 请点击此处
33)路由器在Rails中如何工作?
Rails路由器识别URL, 并将其分派给控制器的动作。它还会生成路径和URL。 Rails路由器处理URL的方式与其他语言路由器不同。它确定请求的控制器, 参数和操作。
Rails路由器的主要目的是:
- 将URL连接到代码
- 从代码生成路径和URL
34)在Rails路线中解释REST。
REST对理解Rails中的路由非常有帮助。它代表代表性状态转移。 REST使用几种HTTP方法来表示用户或应用程序执行的操作的类型。
欲了解更多信息, 请点击此处
35)解释嵌套脚手架的某些功能。
嵌套支架是为Rails 4.2和5生成一组正确工作的嵌套资源的命令。
特征
- 使用单个命令生成嵌套的子资源
- 生成一堆精美的代码
- 自动为ActiveRecord生成适当的模型关联
- 哈姆准备好了
36)你可以通过多种方式创建Rails布局HTTP响应。
从控制器的角度来看, 有三种创建HTTP响应的方法:
- 调用渲染以创建完整响应以发送回浏览器
- 调用redirect_to向浏览器发送HTTP重定向状态代码
- 呼叫头以创建响应并返回到浏览器
37)解释Rails中收益声明的重要性。
Rails中的yield语句决定在布局中将动作的内容呈现在何处。如果布局中没有yield语句, 则将呈现布局文件本身, 但是操作模板中的其他内容将无法正确放置在布局中。
【推荐!Ruby on Rails面试题精品合集】欲了解更多信息, 请点击此处
38)Rails中有多少个过滤器。
Rails过滤器是在执行控制器的action方法之前或之后运行的方法。 Rails支持三种类型的过滤方法:
- 过滤前
- 后过滤器
- 周围过滤器
39)如何保护Rails中的过滤器方法?
所有Ruby方法都至少具有这些保护级别之一。
- 公共:可从任何外部类或使用与定义它们相同类的方法访问这些方法。
- 受保护的:这些方法只能在定义它们的类中以及从定义它们的类继承的类中访问。
- 私有:这些方法只能在定义它们的类中访问。
40)说明在Rails中进行的测试。
Rails还使用单独的数据库进行测试。 Rails使用Ruby Test :: A单元测试库。 Rails应用程序测试通常使用Rake实用程序运行。
Rails支持三种类型的测试:
- 功能性
- 积分
- 单元测试
41)解释Rails的缓存级别。
Rails缓存可用于三个粒度级别:
- 页
- 行动
- 分段
42)Rails验证用于什么?
Rails验证为每个Active Record模型类定义有效状态。它们用于确保仅将有效的详细信息输入到数据库中。
欲了解更多信息, 请点击此处
43)说明在Rails中有效和无效吗?
有效吗?触发你的验证, 如果没有发现错误, 则返回true, 否则返回false。
无效的?是有效的反向吗?它触发你的验证, 如果无效则返回true, 否则返回false。
欲了解更多信息, 请点击此处
44)在Rails中解释不引人注目的JavaScript。
“ 无干扰的JavaScript” 技术被认为是前端社区中的最佳技术。
欲了解更多信息, 请点击此处
45)什么是符号垃圾收集器?
传递符号会在你的系统中引发多种攻击。符号垃圾收集器会收集可防止你的系统遭受多种攻击的符号。
46)什么是动作电缆?
它是一个框架, 用于通过WebSockets扩展Rails以添加一些功能。它将WebSockets与其他Rails应用程序非常平滑地集成在一起。它允许你快速向应用程序添加一些实时功能。
47)解释各种IDE在轨道上的红宝石。
TextMate:TextMate主要用于Mac操作系统。它允许你将扩展写入基本环境。扩展插件插入TextMate, 以向基础编辑器添加新功能。这些扩展称为捆绑包。
E:电子文本编辑器的构建就像TextMate编辑器一样, 可以在Windows上使用。它复制了TextMate的许多功能, 甚至允许使用TextMate捆绑软件。
IntelliJ IDEA:IntelliJ IDEA是由JetBrains制成的商业IDE。之前, 它还用于Java开发。 JetBrains 7.0版已向IntelliJ IDEA添加了Rails支持。
NetBeans:NetBeans是Sun的IDE。以前, 它用于Java开发。 Sun 7.0版已向NetBeans添加了Rails支持。
Eclipse:Eclipse IDE是当今最常用的IDE。使用插件RadRails, 可以将Rails支持完全添加到Eclipse环境。
Heroku:Heroku IDE提供了一种新颖的编写Rails应用程序的方式。它完全在线上用于开发应用程序。你无需在系统上安装任何软件即可使用Heroku。它不支持Internet Explorer。
Aptana Studio:Aptana的产品是基于Eclipse项目的独立桌面IDE。它与Eclipse非常相似。 Rails功能打包为Aptana Studio环境的插件。
RubyMine:RubyMine IDE是Rubyists的首选。与其他IDE相比, 它提供了许多额外的功能。它的一项功能包括点击和跟随。当你单击一个函数时, 它将带你进入正在调用的函数。当多个功能共享相同的名称并驻留在不同的文件和文件夹中时, 此功能会派上用场。其他功能是Git注释和Git比较。
48)什么是铁路控制台?
Rails控制台是一个命令行实用程序, 可从命令行运行Rails应用程序。 Rails控制台是Ruby IRB的扩展。它提供了IRB的所有功能以及自动加载Rails应用程序环境的能力, 包括其所有类和组件。它可以帮助你逐步完成应用程序。
49)什么是红宝石发电机?
这些导轨包括代码生成器脚本, 该脚本用于自动为应用程序生成模型和控制器类。开发Web应用程序时, 代码生成可提高你的生产力。通过运行generator命令, 将生成所有模型和控制器类的框架文件。它还为生成的每个模型生成数据库迁移文件。
50)什么是Webrick Web服务器?
Rails配置为自动使用WEBrick服务器。该服务器是用纯Ruby编写的, 并且几乎支持所有平台, 例如Windows, Mac或Unix。另外, 如果你的系统中安装了Mongrel或Lighttpd服务器, Rails会使用这些服务器之一。
所有三个Rails服务器均具有自动重载代码的功能。这意味着, 当你更改源代码时, 不需要重新启动服务器。
推荐阅读
- 精品!电力系统热门面试题合集
- 热门推荐!最新Go面试题汇总
- 热门!OpenStack精品面试题推荐
- 最好的Memcached最新面试题都在这里了
- call, apply, bind
- What happened when new an object in JVM ?
- Fiddler安卓手机APP抓包
- 安卓其他SpringBoot官网快速集成方法
- dapper之连接数据库(Oracle,SQL Server,MySql)