2013-05-15 49 views
0

我最近开始在rails上学习Ruby并阅读各种教程。以前,我用PHP做了代码。最佳在Ruby on Rails视图中生成HTML的最佳方式

我在教程中找到的做法之一如下。我想知道,如果这是最佳方式?这有什么可能的情况下使用?

对于例如,当生成的视图的形式中,使用了下面的代码:

<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代码,只是使用红宝石无论动态东西生成?是否有任何理由我应该使用这些方法来生成html,而不是加快编码的唯一原因(对于更熟悉ruby方法的人)。因为我是ruby的新手,所以我会更快地编写HTML,并且只在需要时才使用Ruby,而不是生成HTML的简单原因。

什么是行业惯例。将这种不使用Ruby方法生成HTML的习惯会让我难以阅读其他的代码吗?

感谢您提前做出任何回复。

回答

1

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

您可以尝试将通过直接使用HTML,但会发生两两件事:

  1. 肮脏和冗长的HTML标记。
  2. 非传统用途。
  3. 安全问题,如XSS漏洞利用。 (正如丹尼斯指出的那样)
+0

和3.安全问题。 –

0

对Rails的帮助确实有所帮助,但他们不会让它变得更加困难。当你习惯了使用它,感觉很棒。

无论如何,你仍然可以直接使用HTML代码,如果你不想学习或使用助手,你可以做到这一点,但你会错过一个很酷的东西,当然,如果它发生,你应该在一个我确信团队的其他成员将使用助手而不是html。

And rails促进了“约定优于配置”,其中一个好处是要知道作为rails开发人员,您将能够在没有迷失方向寻找文件的情况下,在没有太多适应任何Rails项目的情况下工作,是mvc工作,和其他类似的东西。

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

0

您正在使用的ruby方法被称为帮手。他们在那里做这件事:帮助。起初,有很多东西需要学习,但是在了解它们之后,它们可以节省大量的时间。而且,它们不是ruby方法,它们属于rails框架 - 语言和框架是两个截然不同的东西。

这里有一些原因,你应该使用视图助手:

  • 全部由助手产生HTML将遵循同样的结构,使你的HTML更加一致。
  • 它们可以帮助您避免陷入错误。例如,如果你写出完整的HTML,你可能会错过一个结束标记。如果您使用rails助手,您可以确保生成的HTML是有效且正确的。它几乎消除了潜在的入侵点。
  • 其他rails开发人员熟悉这些方法,并会发现它更容易处理您的代码(如果这种情况必须发生的话)。
  • 从美学的角度来看,我更喜欢阅读帮手的方法,而不是试图扫描HTML和HTML的行,我相信其他许多人都是一样的。它更简洁。
相关问题