私はRailsを初めて使い、簡単なブログサイトの作成を含むオンラインチュートリアルを続けています。私は、コントローラとモデルのテストを追加するプロジェクトのポイントにいます。私はposts_controller_test.rbを実行しようとすると、私は次のエラーを取得する:ここでエラー:nilの定義されていないメソッド `name ':NilClass
Error:
PostsControllerTest#test_should_get_index:
ActionView::Template::Error: undefined method `name' for nil:NilClass
app/views/posts/index.html.erb:7:in `block in _app_views_posts_index_html_erb__805998677_54338856'
app/views/posts/index.html.erb:1:in `_app_views_posts_index_html_erb__805998677_54338856'
test/controllers/posts_controller_test.rb:5:in `block in <class:PostsControllerTest>'
bin/rails test test/controllers/posts_controller_test.rb:4
は私posts_controller_test.rbです:
class PostsControllerTest < ActionDispatch::IntegrationTest
test "should get index" do
get posts_url
assert_response :success
assert_not_nil assigns(:posts)
end
end
チュートリアルが使用され、レールの以前のバージョンで作成しましたget:私が読んだインデックスは、レール5で廃止され、アクション名の代わりにURLを使うことを提案しました。
require 'test_helper'
class HomeControllerTest < ActionDispatch::IntegrationTest
test "should get index" do
get home_index_url
assert_response :success
end
end
:ここ
Error:
HomeControllerTest#test_should_get_index:
NameError: undefined local variable or method `home_index_url' for #<HomeControllerTest:0x67df790>
test/controllers/home_controller_test.rb:5:in `block in <class:HomeControllerTest>'
bin/rails test test/controllers/home_controller_test.rb:4
home_controller_test.rbです:私は、私も変更していないコントローラhome_controller_test.rbを、実行している場合
興味深いことに、私は以下の別のエラーを取得します問題が何であるかについての助けは大いに感謝されるでしょう。
<% @posts.each do |post| %>
<div class="post">
<h2 class="title"><%= link_to post[:title],post %></h2>
<div class="entry"><%= post[:body] %></div>
</br>
<div class="byline">
<span class="meta"><%= post[:created_at].strftime("%b %d, %Y") %> Posted By: <%= post.admin_user.name %></span><span class="links"><%= link_to "Read More",post %>
</div>
</div>
<% end %>
共有ur 'index'ビュー –
これは、このファイルを意味します:app/views/posts/index.html.erb :) – Gerry
上記のインデックスビューを共有しました。 – henrypj