2011-08-08 77 views
0

我在使用aptana studio 3的rails上学习ruby。我创建了一个视图hello.rhtml。当我运行视图,看到源我看到js文件自动包括。即使我的RHTML文件是空的如Aptana studio 3自动在html文件中包含html标记

hello world 

没有HTML标记,如果我看到的来源,我可以看到从HTML文档类型等已经存在的全部标记。我如何停止包含自动标记?

感谢

编辑:

OK我创建了一个hello.html.erb文件。当我保存并运行该文件,我得到的输出,但是当我查看源代码我得到以下结果把这段代码里面

你好

<!DOCTYPE html> 
<html> 
<head> 
    <title>Demo</title> 

    <script src="/javascripts/prototype.js?1312799421" type="text/javascript"></script> 
<script src="/javascripts/effects.js?1312799421" type="text/javascript"></script> 
<script src="/javascripts/dragdrop.js?1312799421" type="text/javascript"></script> 
<script src="/javascripts/controls.js?1312799421" type="text/javascript"></script> 
<script src="/javascripts/rails.js?1312799421" type="text/javascript"></script> 

<script src="/javascripts/application.js?1312799421" type="text/javascript"></script> 
    <meta name="csrf-param" content="authenticity_token"/> 
<meta name="csrf-token" content="82LBP1pI5h0QzNW54PYSq/zdkS8kF4Z/nKSUHgKvv1g="/> 
</head> 
<body> 

<html> 
    <head><title>Hello</title></head> 
    <body> 
</body> 
</html> 


</body> 
</html> 

所以如果你看到,我得到的HTML里面的html,当在浏览器中我的标题显示“演示”,而不是“你好”

更新:

这里是应用程序的内容布局。我现在明白了,代码来自这个布局。

<!DOCTYPE html> 
<html> 
<head> 
    <title>Demo</title> 
    <%= stylesheet_link_tag :all %> 
    <%= javascript_include_tag :defaults %> 
    <%= csrf_meta_tag %> 
</head> 
<body> 

<%= yield %> 

</body> 
</html> 

我是新来的这一点,所以什么是最好的做法,哪些代码应该出现在application_layout.html.erb。我希望我所有的视图文件都有自己的html代码。 非常感谢

回答

1

您的观点应该有.html.erb扩展名不是rhtml(这是从Rails 1.x挂起)。 查看您的应用程序布局文件。在头部你会看到一个包含javascript的条目。只是评论说,你不会被包括在内。

这只是留给我一个问题。你有什么问题?它为什么打扰你?也许这个答案会让你找到正确的问题,以找到更合适的解决方案。

UPDATE 仔细看看您的application_layout.html.erb。 你能发表那些内容吗?

+0

我编辑了我的问题。基本上我得到它的HTML标记的HTML标记。如果我在我的.html.erb文件中编写html代码并运行代码,我仍然可以在我的视图源中看到html代码。 – noobcode

+0

看到我的更新。我现在明白,我的概率是因为application_layout.html.erb ...你可以建议同样的最佳选择吗?..谢谢 – noobcode

+0

我删除了application_layout.html.erb中的所有其他代码,并且仅使用<%= yeild %>。它的工作方式就像我希望它的工作......希望这是一个最佳实践。谢谢 – noobcode

1

这不是一个错误,这是Rails的工作方式!

Rails会为您生成views/layouts/application.html.erb,这是网站的基本模板。使用此模板,您不必在每个制作的页面上复制和粘贴相同的HTML声明。

Rails使用一种叫做MVC的约定,它代表模型,视图,控制器。我建议你多阅读一下这个如何工作。基本上,<%= yield%>会插入视图的内容,但是你必须告诉Rails哪个url指向哪个视图。现在你可以拥有views/pages/home.html.erb,其内容可能是..

<h1>Home Page</h1> 
<p>Congratulations, you made a web page with Rails!</p> 

然后在routes.rb中

YourApp::Application.routes.draw do 
    match 'home' => 'pages#home' 
end 

当你去http://localhost:3000/home,你会看到你的网页。如果您查看源代码,您将看到由Rails生成的输出。

<!DOCTYPE html> 
<html> 
<head> 
    <title>Demo</title> 
    <%= stylesheet_link_tag :all %> 
    <%= javascript_include_tag :defaults %> 
    <%= csrf_meta_tag %> 
</head> 
<body> 
    <h1>Home Page</h1> 
    <p>Congratulations, you made a web page with Rails!</p> 
</body> 
</html> 

这绝对是使用Rails的正确方法。目标是干(不要重复自己)。 Michael Hartl有一个很好的教程和使用Ruby on Rails的介绍。我会建议任何新来Ruby on Rails的人从这里开始:http://ruby.railstutorial.org/。如果您对通常使用Ruby on Rails或网页设计有任何疑问,我很乐意提供帮助。你可以发邮件给我[email protected]。欢呼声,祝你好运!

+0

谢谢Dragonstar,非常有见地的信息。 – noobcode