Michael Hartl's Railsチュートリアルを行っていますが、リスト5.28(緑の代わりにREDテストを取得)では、新しいルートに合わせてテストを変更しています。 (/、/ /ヘルプ/連絡先、程度)すべてのページのRailsチュートリアル静的ページルートtest red(5.28)
エラー:
Rails.application.routes.draw do
root 'static_pages#home'
get '/help', to: 'static_pages#help'
get '/about', to: 'static_pages#about'
get '/contact', to: 'static_pages#contact'
end
テスト/コントローラ/ static_pages_controller_test.rb routes.rbを
ActionController::UrlGenerationError: No route matches {:action=>"/*", :controller=>"static_pages"}
require 'test_helper'
class StaticPagesControllerTest < ActionController::TestCase
test "should get home" do
get root_path
assert_response :success
assert_select "title", "Ruby on Rails Tutorial Sample App"
end
test "should get help" do
get help_path
assert_response :success
assert_select "title", "Help | Ruby on Rails Tutorial Sample App"
end
test "should get about" do
get about_path
assert_response :success
assert_select "title", "About | Ruby on Rails Tutorial Sample App"
end
test "should get contact" do
get contact_path
assert_response :success
assert_select "title", "Contact | Ruby on Rails Tutorial Sample App"
end
end
static_pages_controller.rb
class StaticPagesController < ApplicationController
def home
end
def help
end
def about
end
def contact
end
end
あなたが他のコードを参照する必要がある場合は、私を知ってみましょう!次のように追加しようとしました:それぞれのルートの後に '*'がありますが、無駄です。
ruby/railsのバージョンの問題ではあるが、私はIDE上でRails 4.2.2とRuby 2.3.0を使用していますが、 "rails test"(Hartlが使用を指示)キックバック "テストコマンドが見つかりません")。それが大きな問題のヒントなのか、無関係なのかは分かりません。前もって感謝します!
EDIT:これらのパスを使用するリンク(以下のように)が正しくレンダリングされているだけで、テストに失敗しています。
<%= link_to "Home", root_path %>
<%= link_to "Help", help_path %>
バージョンが問題でした。以前の章では、4.2.2を使用してサンプルアプリケーションを作成するように指示した本の古い版に入っていました。それから何とかいくつかの章が、5.0.0の本の最新版に切り替えられました。どのくらい私はそれを気づかずにそれを介して得たか分からないが、私は最初からアプリを始めた(私はハートルの本の5.0.0版にあったことを確認している)。今はすべてが魅力的なように働いています。間違いなく私が正しいバージョンになっていることを確認する貴重な教訓を学びました...そしてエディション! – user2521295