Руководство Майкла Хартла глава 5 Ссылки на макет должны иметь домашнюю страницу по адресу ‘/’ проблема

#ruby-on-rails-3

#ruby-on-rails-3

Вопрос:

У меня уже некоторое время возникает эта проблема, и, похоже, я не могу разобраться, поскольку я много раз воссоздавал все с нуля

В любом случае, я нахожусь в той части книги, откуда мы хотим, чтобы ссылка на домашнюю страницу переходилаhttp://localhost:3000/pages/home (Кстати, это сработало отлично), чтобы http://localhost:3000 (в основном это означает, что я хочу, чтобы домашняя страница отображалась на корневой странице)

В настоящее время ошибка, с которой я сталкиваюсь, заключается в том, что ссылки на макет должны иметь домашнюю страницу по адресу ‘ /’ Сбой / ошибка: ответ.должен иметь_селектор(‘title’, : content => «Home») А под ней куча текста, в котором говорится, как должна выглядеть страница.

Теперь я сделал 2 вещи, сначала я создал страницу layout_link_sp.rb, добавил страницу справки в pages_controller.rb и добавил маршруты в config / routes.rb ниже приведен код для всех 3

layout_link_sp.rb

 require 'spec_helper'
describe "LayoutLinks" do
#  describe "GET /layout_links" do
#    it "works! (now write some real specs)" do
  # Run the generator again with the --webrat flag if you want to use webrat methods/matchers
#      get layout_links_index_path
#      response.status.should be(200)

it "should have a Home page at '/'" do
get '/'
response.should have_selector('title', :content => "Home")
     end

it "should have a Contact page at '/contact'" do
get '/about'
response.should have_selector('title', :content => "About")
end

it "should have a Help page '/help'" do
get '/help'
response.should have_selector('title', :content => "Help")
  end
end
  

Pages_controller.rb

 def home
    @title = "Home"
  end

  def contact
        @title = "Contact"
  end

  def about
        @title = "About"
  end

  def help
        @title =  "Help"
  end 
end
  

config/routes.rb

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

Я что-то делаю не так?

Ответ №1:

Добавьте «end» в конец ваших маршрутов.rb 🙂 Есть блок, который открывается с помощью «do», и вы его не закрыли. Внимательно проверьте листинг 5.20.

Комментарии:

1. это было там, я просто забыл добавить это

2. что вы имеете в виду, проверяя это вручную? вы имеете в виду, нравится ли мне / home?

3. Я имею в виду, видите ли вы свою домашнюю страницу, если заходите на localhost: 3000 / с помощью вашего браузера?

4. нет, все, что я вижу, это домашняя страница по умолчанию Добро пожаловать на борт, вы едете на Ruby on Rails!

5. 🙂 удалить index.html из общедоступных. Кстати, запомните этот момент, вы можете столкнуться с этой проблемой позже, когда начнете внедрять кэш для своих приложений, и это будет создавать index.html в вашем паблике, и вы будете пытаться понять, что, черт возьми, происходит с вашей главной страницей 🙂