On Sat, Jun 25, 2016 at 4:08 AM, Deepak Sharma <[email protected]>
wrote:
> I am getting Id missing nil error in my create controller spec. Yet I have
> passed ID stuff in it still facing same everything. Here my create spec and
> controller file
>
> *Create Spec*
>
>
> describe 'POST :create' do
> context 'with valid data' do
> let(:valid_data) { FactoryGirl.attributes_for(:student) }
> it 'redirect to show page' do
> post :create, student: valid_data
>
>
Looks like right here:
> expect(response).to redirect_to(student_path(assigns[:student]))
>
>
Should be `assigns(:student)`.
> end
> end
> end
>
>
> *Student Controller*
>
>
> def create
> @student = current_user.students.build(student_params)
>
> respond_to do |format|
> if @student.save
> format.html { redirect_to @student }
> format.json { render :show, status: :created, location: @student }
> else
> format.html { render :new }
> format.json { render json: @student.errors, status:
> :unprocessable_entity }
> end
> end
> end
>
> private
>
> def student_params
> params.require(:student).permit(:Student_Prefix, :First_Name,
> :Middle_Name, :Last_Name, :Father_Prefix, :Father_Name,
> :Father_Middle_Name, :Father_Last_Name, :Mother_Prefix, :Mother_Name,
> :Mother_Middle_Name, :Mother_Last_Name, :user_id)
> end
>
>
> *Error*
>
> 1) StudentsController POST :create with valid data redirect to show page
> Failure/Error: expect(response).to
> redirect_to(student_path(assigns[:student]))
>
> ActionController::UrlGenerationError:
> No route matches {:action=>"show", :controller=>"students", :id=>nil}
> missing required keys: [:id]
> # ./spec/controllers/students_controller_spec.rb:38:in `block (4
> levels) in <top (required)>'
> # -e:1:in `<main>'
>
>
> Where I am going wrong!
>
> --
> Cheers!
>
> Deepak Kumar Sharma
> Guru Nanak Dev Engineering College
> India!
>
> Blog: http://deekysharma.wordpress.com
>
> --
> You received this message because you are subscribed to the Google Groups
> "Ruby on Rails: Talk" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/rubyonrails-talk/CALDHwN5oJqMmp7d_%3DjGwt%3DNXa%2BuLqL5xfYZh0kknrD5_X94xkQ%40mail.gmail.com
> <https://groups.google.com/d/msgid/rubyonrails-talk/CALDHwN5oJqMmp7d_%3DjGwt%3DNXa%2BuLqL5xfYZh0kknrD5_X94xkQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>
--
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/rubyonrails-talk/CAHUC_t9tjWuaK2vrqyNR3vNywp%3Dxej8oS-jjR2OpkD8F%3DC5_Mw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.