2012-03-06 31 views
0

我剛接觸rails並剛剛創建了一個新項目。準確地說,我在Haml,index.html.haml中創建了以下視圖。但是,這是我運行應用程序時獲得的源代碼。我沒有得到我在Haml創建的HTML或標題標籤。第一個是源代碼,第二個是我的Haml文件的內容。在rails應用程序中沒有html標記

<h2>'All Posts'</h2> 
<table id='posts'> 
    <thead> 
    <tr> 
     <th>Post Title</th> 
     <th>Post Entry</th> 
    </tr> 
    </thead> 

    <tbody></tbody> 
    <tr> 
    <td>First Post</td> 
    <td>Oylesine bir seyler</td> 
    </tr> 
</table> 

的index.html.haml文件:

%h2 'All Posts' 

%table#posts 
    %thead 
    %tr 
     %th Post Title 
     %th Post Entry 

    %tbody 
    - @posts.each do |post| 
    %tr 
     %td= post.title 
     %td= post.body 

這是我創建的application.html.haml文件:

!!! 5 
%html 
    %head 
    %title Rotten Potatoes! 
    = stylesheet_link_tag 'application' 
    = javascript_include_tag 'application' 
    = csrf_meta_tags 

    %body 
    = yield 

我失去了一些東西在這裏?

這裏是控制器代碼:

class MoviesController < ActionController::Base 
    def index 
    @movies = Movie.all 
    end 

    def show 
    id = params[:id] 
    @movie = Movie.find_by_id(id) 
    end 
end 
+0

郵政相關的控制器代碼也請。 –

+0

我添加了控制器代碼 – eytanfb

+1

您的佈局未被拾取。你的'application.html.haml'文件在哪裏?它應該在'app/views/layouts/application.html.haml'。 – matt

回答

2

改變你的電影控制器從繼承代替ActionController::Base

class MoviesController < ApplicationController 

希望有所幫助。

1

刪除%HTML

thisthis

application.html.haml例如:

!!! 5 
-# http://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither 
-ie_html :class => 'no-js oldie', :lang => 'en' do 
    %head 
    -# To render a different stylesheet partial inside the head (i.e. for admin layout) 
    -# just copy _stylesheets.html.haml, and point to that partial instead. 
    = render "layouts/head", :stylesheet_partial => "layouts/stylesheets" 

    %body{ :class => "#{controller.controller_name}" } 
    #container 
     %header#header 
     = render "layouts/header" 

     #main{ :role => 'main' } 
     = render "layouts/flashes" 
     = yield 

     %footer#footer 
     = render "layouts/footer" 

    -# Javascript at the bottom for fast page loading 
    = render "layouts/javascripts" 
+0

沒有工作..我刪除了%html bu仍然沒有html標記的來源。這也是我的樣式表不適用於網站的原因嗎? – eytanfb

+0

我確實看過github上的文件,但我看不到任何具體的東西會刪除我的html標籤。有什麼具體的我需要在你粘貼的代碼中尋找 – eytanfb

+0

看來,該應用程序不使用佈局。 – dotoree

0

1.)最簡單的解決方案是將application.html.haml重命名爲app/views/layouts目錄下的movies.html.haml,因爲Rails首先在app/views/layouts中查找具有相同基礎的文件名稱作爲控制器。

如果沒有控制器特定的佈局,Rails理論上應該使用app/views/layouts/application.html.erb或app/views/layouts/application.html.haml。這對Rails 3.2.2不適用。

2)另一種可能性是定義「應用」作爲佈局控制器:

class MoviesController < ActionController::Base 
layout "application" 

    def index 
    @movies = Movie.all 
    end 

    def show 
    id = params[:id] 
    @movie = Movie.find_by_id(id) 
    end 
end 

希望有所幫助。

0

刪除視圖/佈局/ application.html.erb 再培訓局高一籌applcation.html.haml

相關問題