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
解決策は何か分かりますか?
POSTを実行すると、 'flash [:danger]'に割り当てられているパスに従っていますか?もしそうなら、コメント付きbinding.pryの場所に 'assigns(:director).errors'の出力は何ですか? –
ました: =>#、 @messages = {:bio => ["Can not be空白です。 "]}> Faker :: Hipster.paragraphsは機能しません。私はそれをFaker :: Lorem.paragraphに変更してうまくいった!ベンに助けてくれてありがとう! –
wbucko