2012-03-06 21 views
0

私はレールが初めてで、新しいプロジェクトを作成しました。 Hamlのindex.html.hamlというビューを正確に作成しました。しかし、これは私がアプリケーションを実行するときに得るソースです。私はHamlで作成したHTMLやタイトルタグも取得しません。最初はソース、2番目は私の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ファイル:

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

    %body 
    = yield 

私はここで何かが欠け午前:

%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ファイルのですか?ここで

は、コントローラのコードは次のとおりです。

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

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

ポストに関連するコントローラコードを食されたビュー/レイアウト/ application.html.erb を削除します。 –

+0

コントローラコード – eytanfb

+1

を追加しましたあなたのレイアウトが選択されていません。あなたの 'application.html.haml'ファイルはどこですか? 'app/views/layouts/application.html.haml'にあるはずです。 – matt

答えて

2

はムービーコントローラを変更しますから継承する代わりにの:

class MoviesController < ApplicationController 

の希望があります。

1

thisthis

application.html.haml例を参照してください%のHTMLを削除します。

!!! 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をまだ削除しました。これは私のスタイルシートがウェブサイトに当てはまらない理由ですか? – eytanfb

+0

私はgithub上のファイルを見ましたが、私は自分のhtmlタグを削除するようなものは何も見えませんでした。あなたが貼り付けたコードで探す必要がある具体的なものがありますか – eytanfb

+0

それは、アプリケーションがレイアウトを使用していないようです。 – dotoree

0

1.)最も簡単な解決策は、app/views/layoutsディレクトリのapplication.html.hamlの名前を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

はあまりにくださいERBはapplcation.html.haml

関連する問題