私は基本的なrspecテストをしようとしています。 updated_atの、 "2016年7月19日11時58分28秒":「2016年7月19日11のcreated_at、4:予想:レビューID:8、評価Rspec test got:nil
require 'rails_helper'
describe ReviewsController do
describe "GET #index" do
it "assigns a new review to @reviews" do
review = Review.create(rating: 4)
get :index
expect(assigns(:review)).to eq([review])
assert_response :success
end
end
end
しかし、私は失敗を取得しています:58:28" 、USER_ID:nilに、game_id: nilを得た:
class Review < ActiveRecord::Base
belongs_to :user
belongs_to :game
validates_presence_of :rating
validates_uniqueness_of :user_id
end
:
は、あなたがそれを必要とする場合には
class ReviewsController < ApplicationController
def index
@reviews = Review.all
end
def show
@review = Review.find(params[:rating])
end
def create
review = Review.new(review_params)
respond_to do |format|
if @review.save
format.html { redirect_to root_url, notice: 'Review was successfully updated.' }
format.json { render :show, status: :ok, location: @review }
else
format.html { render :new }
format.json { render json: @review.errors, status: :unprocessable_entity }
end
end
end
private
def post_params
params.require(:post).permit(:message)
end
end
、ここでのレビューモデルです:
私ReviewsControllerは、このようになりますnilを
それはuser_idのかgame_idを求めている理由、それは唯一のレビューについてですので、私はあなたが
expect(assigns(:reviews)).to eq([review])
に
expect(assigns(:review)).to eq([review])
下記変更する必要があります..
モデルの関連付けのために、そのエラーメッセージが表示されます。レビューはゲームとユーザーに属しているため、レビューの作成には割り当てられたゲームとユーザーIDが必要です。 – Ren