0

我最近开始学习 Ruby on rails 并阅读各种教程。以前,我用 PHP 编写代码。

我在教程中发现的一种做法如下。我想知道,这是否是最佳方式?这有哪些可能的使用场景?

例如,在视图中生成表单时,使用了以下代码:

<h1>Contact us</h1>
<%= form_tag do %>
  <%= label_tag ('Name') %>
  <%= text_field_tag 'Name','Enter name here'%>
  <%= label_tag ('Email') %>
  <%= email_field_tag('Email', @email, options = {}) %>
  <%= submit_tag "Edit this article" %>
<% end %>

直接在视图中使用 HTML 代码并在生成动态内容的地方使用 ruby​​ 不是一个好习惯吗?除了更快编码的唯一原因(对于更熟悉 ruby​​ 方法的人来说)之外,我还有什么理由应该使用这些方法生成 html。因为,我是 ruby​​ 的新手,所以我会更快地编写 HTML 代码,并且仅在需要时才使用 Ruby,而不是出于生成 HTML 的简单原因。

什么是行业惯例。养成不使用 Ruby 方法生成 html 的习惯会不会让我难以阅读其他人的代码?

感谢您提前回复。

4

3 回答 3

1

这些是 的方法ActionView::Helper::FormHelpers。它们不仅生成裸 HTML 标记。除了插入标签之外,它们还添加了足够的id, class,data属性等。动态插入id的实例负责创建可用的params哈希,而哈希又负责控制器中的大多数表单操作。

您可以尝试直接使用 HTML 插入它,但会发生两件事:

  1. 肮脏和冗长的 HTML 标记。
  2. 非常规使用。
  3. XSS 漏洞利用等安全问题。(正如丹尼斯所指出的)
于 2013-05-15T10:40:30.873 回答
0

Rails 上的助手真的很有帮助,他们不是为了让它变得更困难。当您习惯使用它时,您会感觉很棒。

无论如何,您仍然可以直接使用 html 代码,如果您不想学习或使用帮助程序,您可以这样做,但是您会错过 rails 中的一个很酷的东西,当然如果您应该在我的团队中工作确保团队的其他成员将使用助手而不是 html。

Rails 提倡“约定优于配置”,其中一个好处是知道作为 Rails 开发人员,您无需对任何 Rails 项目进行太多调整即可工作,而不会迷失寻找文件,mvc 是如何工作的,和其他类似的东西。

当您更多地学习和练习使用助手时,您将开始看到它的所有“力量”,并看到它真正有多大帮助。

于 2013-05-15T10:43:22.940 回答
0

您正在使用的 ruby​​ 方法称为helpers。他们就是这样做的:帮助。起初,有很多东西要学,但是在学习它们之后,他们节省了大量时间。此外,它们不是 ruby​​ 方法,它们属于 rails 框架 - 语言和框架是两个不同的东西。

以下是您应该使用视图助手的一些原因:

  • 助手生成的所有 HTML 都将遵循相同的结构,从而使您的 HTML 更加一致。
  • 它们可以使您免于遇到错误。例如,如果您写出完整的 HTML,您可能会错过一个结束标记。如果您使用 rails 帮助程序,您可以确定生成的 HTML 是有效且正确的。它实际上消除了错误的潜在入口点。
  • 其他 Rails 开发人员熟悉这些方法,并且会发现使用您的代码更容易(如果必须这样做的话)。
  • 从美学的角度来看,我更喜欢阅读辅助方法,而不是试图扫描一行又一行的 HTML,我相信许多其他方法都是一样的。它更简洁。
于 2013-05-15T10:43:32.433 回答