Rails Учебное пособие - Раздел 5.2 Ошибка маршрутизации / RSPEC

StackOverflow https://stackoverflow.com//questions/10669951

Вопрос

Ruby Newbie здесь.Я следую за железнодорожным руководством и застрял около 5,3 Re: маршрутов.

У меня есть 5 страниц (домой, о, справка, контакт), все с аналогичным тестом, а RSPEC только в неисправности тестов на «домой».Так как я использую Application_Helper, мне не нужно указывать в home.html.erb, верно?Я также принял консультирование Понимание маршрутов Rails: Match VS root вMarross.rb и добавлен "Match '/ Static_pages / home'=> 'static_pages # home'" на маршруты.db.

застрял на этих 2 ошибках некоторое время.Пожалуйста помоги.Спасибо!

Ошибки:

1) Static pages Home page should have the h1 'Sample App'
Failure/Error: page.should have_selector('h1', text: 'Sample App')
expected css "h1" with text "Sample App" to return something
# ./spec/requests/static_pages_spec.rb:9:in `block (3 levels) in <top (required)>'

2) Static pages Home page should have the base title
Failure/Error: page.should have_selector('title',
expected css "title" with text "Ruby on Rails Tutorial Sample App" to return something
# ./spec/requests/static_pages_spec.rb:13:in `block (3 levels) in <top (required)>'
.

home.html.erb

<div class="center hero-unit">
<h1>Welcome to the Sample App</h1>

<h2>
This is the home page for the
<a href="http://railstutorial.org/">Ruby on Rails Tutorial</a>
sample application.
</h2>

<%= link_to "Sign up now!", '#', class: "btn btn-large btn-primary" %>
</div>

<%= link_to image_tag("rails.png", alt: "Rails"), 'http://rubyonrails.org/' %>
.

Static_pages_spec.rb

require 'spec_helper'

describe "Static pages" do

  describe "Home page" do

  it "should have the h1 'Sample App'" do
    visit root_path
    page.should have_selector('h1', text: 'Sample App')
  end

  it "should have the base title" do
    visit root_path
    page.should have_selector('title', text: "Ruby on Rails Tutorial Sample App")
  end

  it "should not have a custom page title" do
    visit root_path
    page.should_not have_selector('title', text: '| Home')
  end
end
.

Application.html.erb

<!DOCTYPE html>
<html>
  <head>
    <title><%= full_title(yield(:title)) %></title>
    <%= stylesheet_link_tag    "application", media: "all" %>
    <%= javascript_include_tag "application" %>
    <%= csrf_meta_tags %>
    <%= render 'layouts/shim' %>    
  </head>
  <body>
    <%= render 'layouts/header' %>
    <div class="container">
      <%= yield %>
      <%= render 'layouts/footer' %>
    </div>
  </body>
</html>
.

Application_helper.rb

module ApplicationHelper

# Returns the full title on a per-page basis.
def full_title (page_title)
    base_title = "Ruby on Rails Tutorial Sample App"
    if page_title.empty?
        base_title
    else
        "#{base_title} | #{page_title}"
    end
end

end
.

Маршруты.rb

SampleApp::Application.routes.draw do
  match '/help',    to: 'static_pages#help'
  match '/about',   to: 'static_pages#about'
  match '/contact', to: 'static_pages#contact' 
  match '/static_pages/home' => 'static_pages#home'

  root to: 'static_pages#home'
end
.

Дайте мне знать, если вам нужно что-нибудь еще.Спасибо!

Это было полезно?

Решение

Вы удалили файл public / index.html и визуально проверили, что вы можете добраться до / в браузере, и что ожидаемый шаблон отображается?Ваш спецификация выглядит хорошо иначе.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top