2016-03-27 15 views
0

私はこの問題を解決するために努力しています。私はFaricatorでRSpecを使用しており、テストをパスすることはできません。問題は作成アクションに表示されます。更新(同様の構文で)うまく動作します。私はそれが仕様ではなくむしろ問題だと思うので、Webサイトのフォームからすべてが正しく動作します。 コントローラ仕様:Rspec 3とFabricator - コントローラ仕様、新しいレコードを作成できません

describe 'POST #create' do 
    before { set_current_admin admin } 
    context 'admin users' do 
    context 'a successful create' do 
     before do 
     post :create, director: Fabricate.attributes_for(:director) 
     end 

     it 'saves new director object' do 
     #require 'pry'; binding.pry 
     expect(Director.count).to eq(1) 
     end 

     it 'redirects to directors path' do 
     expect(response).to redirect_to directors_path 
     end 

     it 'sets a successful flash message' do 
     expect(flash[:success]).to eq('Reżyser został zapisany.') 
     end 
    end 
    end 
end 

set_current_adminの管理方法は、管理者としてユーザを記録します。私は、ログが正しいことを確認してログオンしたユーザーが管理者であることを確認しました。ディレクターコントローラー:

class DirectorsController < ApplicationController 
    before_action :set_director, only: [:edit, :update, :destroy, :show] 
    before_action :admin_user, except: [:index, :show] 

    def create 
    @director = Director.new(directors_params) 
    if @director.save 
     flash[:success] = 'Reżyser został zapisany.' 
     redirect_to directors_path 
    else 
     flash[:danger] = 'Coś poszło nie tak, spróbuj ponownie.' 
     render :new 
    end 
    end 

解決策は何か分かりますか?

+0

POSTを実行すると、 'flash [:danger]'に割り当てられているパスに従っていますか?もしそうなら、コメント付きbinding.pryの場所に 'assigns(:director).errors'の出力は何ですか? –

+0

ました: =>#、 @messages = {:bio => ["Can not be空白です。 "]}> Faker :: Hipster.paragraphsは機能しません。私はそれをFaker :: Lorem.paragraphに変更してうまくいった!ベンに助けてくれてありがとう! – wbucko

答えて

1

だから仕様は正しいです。私はFaker::Hipster.paragraphの代わりに、誤ったFaker要素 - Faker::Hipster.paragraphsを使用しています。最初は配列を生成し、次に文字列を生成します。

関連する問題