нет тега html в приложении rails - PullRequest
0 голосов
/ 06 марта 2012

Я новичок в рельсах и только что создал новый проект. Я создал следующее представление в Haml, если быть точным, index.html.haml. Однако это источник, который я получаю, когда запускаю приложение. Я не получаю HTML или теги заголовков, которые я также создал в Haml. Первый - это источник, второй - содержимое моего файла Haml.

<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

Ответы [ 4 ]

3 голосов
/ 09 марта 2012

Измените контроллер фильмов, чтобы он наследовал от ApplicationController вместо ActionController::Base:

class MoviesController < ApplicationController

Надеюсь, это поможет.

1 голос
/ 06 марта 2012

Удалить% html

См. это и это

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 голосов
/ 20 октября 2012

удалить views / layouts / application.html.erb, когда erb затмевает applcation.html.haml

0 голосов
/ 19 марта 2012

1.) Самое простое решение - переименовать ваш application.html.haml в movies.html.haml в каталоге app / views / layouts, потому что 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

Надеюсь, это поможет.

...