私はshow.html.erbを表示しています
<%= @question.user.lesson_id %>
これはブラウザ上の数字です。
私のquestions_controller.rbは
def show
@question = Question.find(params[:id])
@comments = @question.comments.all
if user_signed_in?
@rating_currentuser = @question.ratings.find_by_user_id(current_user.id)
unless @rating_currentuser
@rating_currentuser = current_user.ratings.new
end
end
そして私のquestions_controller_test.rb
test "should show question signed in" do
sign_in users(:user2)
get :show, :id => @question_user1.to_param
assert_response :success
end
すべて問題ありません(ブラウザとテスト)
ビューを変更するとき show.html.erb
<%= @question.user.lesson.name %>
ブラウザには問題ありませんが、テストに失敗します
ActionView::Template::Error: undefined method `name' for nil:NilClass.
私はこれを試します
@name = Lesson.find(params[:id])
question_controller.rb で、テストは失敗します
Expected response to be a <:success>, but was <302>