rspec未定义的方法`id',用于nil:NilClass

YA芝芝
       require 'rails_helper'

      feature "comment" do
        given(:current_user) do
          create(:user)
        end
        given(:undertaking) do
           create(:undertaking)
        end
        background do
         login_as(current_user)
        end
        scenario "can create comment" do
          #below two because undertaking = user_id:2 & asking_id:1
          create(:user)
          create(:asking)
          p undertaking
          p Asking.find(1)
          p User.find(2)
          p User.find(1)
          p Undertaking.all
          visit undertaking_path(undertaking)
          expect(current_path).to eq undertaking_path(1)
          within("form#undertake-form-test") do
           fill_in "content" , with: "heyheyhey"
          end
          click_button 'Send'
          expect(page).to have_content 'heyheyhey'
        end
       end

这是spec / features / comment_spec.rb。这是结果命令rspec。

             #<Undertaking id: 1, title: "MyString", content: "MyText", result: false, user_id: 2, asking_id: 1, created_at: "2016-12-13 15:07:08", updated_at: "2016-12-13 15:07:08">
              #<Asking id: 1, content: "MyText", fromlang: "MyString", tolang: "MyString", usepoint: 1, finished: false, title: "MyString", deadline: nil, user_id: 1, created_at: "2016-12-13 15:07:08", updated_at: "2016-12-13 15:07:08">
              #<User id: 2, email: "[email protected]", created_at: "2016-12-13 15:07:08", updated_at: "2016-12-13 15:07:08", provider: nil, uid: nil, name: "Shiruba", occupation: "大学生", age: 10, sex: "男性", content: "heyheyheyeheyeheye", skill: "日本語検定3級", picture: "/assets/default_user.jpg", point: 500, country: "Japan", language1: "Japanese", language2: "Korea", language3: "English">
             #<User id: 1, email: "[email protected]", created_at: "2016-12-13 15:07:08", updated_at: "2016-12-13 15:07:08", provider: nil, uid: nil, name: "Shiruba", occupation: "大学生", age: 10, sex: "男性", content: "heyheyheyeheyeheye", skill: "日本語検定3級", picture: "/assets/default_user.jpg", point: 500, country: "Japan", language1: "Japanese", language2: "Korea", language3: "English">
            #<ActiveRecord::Relation [#<Undertaking id: 1, title: "MyString", content: "MyText", result: false, user_id: 2, asking_id: 1, created_at: "2016-12-13 15:07:08", updated_at: "2016-12-13 15:07:08">]>
            F

            Failures:

            1) comment can create comment
                Failure/Error: <%= @undertaking.id %>

                ActionView::Template::Error:
                      undefined method `id' for nil:NilClass

这是undertaking_controller.rb。

       class UndertakingController < ApplicationController
              def show
               @undertaking=Undertaking.find(params[:id])
               @comment=Comment.new do |c|
                c.user=current_user
               end
              end
       end

这是understanding / show.html.erb。

               <%= @undertaking.id %>

为什么会出现错误?尽管Undertaking.first在spec / features / comment_spec.rb中不是零,为什么@undertake还是零?请帮助我。

怪物码

我认为这与您的控制器使用的命名有关。该视图的约定是undertakings / show.html.erb,而不是undertaking / show.html.erb。我也会用

 class UndertakingsController < ApplicationController

代替

class UndertakingController < ApplicationController

最后,我将检查我所有的路线也都具有正确的命名。希望能有所帮助。祝你好运

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

rspec,nil:NilClass的未定义方法`id'

来自分类Dev

NoMethodError未定义的方法`',用于nil:NilClass

来自分类Dev

NoMethodError未定义的方法`',用于nil:NilClass

来自分类Dev

未定义的方法“ +”,用于nil:NilClass(NoMethodError)-Ruby

来自分类Dev

未定义的方法'id'用于nil:NilClass用于对象收集

来自分类Dev

Rails RSpec测试:nil:NilClass的未定义方法“传递”

来自分类Dev

RSpec中nil:NilClass的未定义方法

来自分类Dev

nil:NilClass(RSpec)的未定义方法“ comments”

来自分类Dev

RSpec 错误:未定义的方法“包含?” 对于 nil:NilClass 和未定义的方法 `downcase' 对于 nil:NilClass

来自分类Dev

nil:NilClass的未定义方法'id'(Controller#create)

来自分类Dev

nil:NilClass的未定义方法'id'(Controller#create)

来自分类Dev

Rails为nil:NilClass使用的未定义方法`id'

来自分类Dev

nil 的未定义方法“id”的错误:NilClass

来自分类Dev

nil:NilClass <NoMethodError>的未定义方法'>'

来自分类Dev

RoR:nil:NilClass的未定义方法`[]'

来自分类Dev

nil:NilClass的未定义方法`env'

来自分类Dev

nil:NilClass的未定义方法“错误”

来自分类Dev

NoMethodError:未定义的方法[[] ='for nil:NilClass

来自分类Dev

nil:NilClass的未定义方法'%'

来自分类Dev

nil:NilClass的未定义方法“ +”(NoMethodError)

来自分类Dev

nil:NilClass的未定义方法“ new”

来自分类Dev

nil:NilClass的未定义方法“ sub”

来自分类Dev

nil:NilClass的未定义方法“名称”

来自分类Dev

nil:NilClass的未定义方法'downcase'

来自分类Dev

nil:NilClass的未定义方法“ microposts”

来自分类Dev

Ruby:nil:NilClass的未定义方法`[] ='

来自分类Dev

nil:NilClass的未定义方法“ questions”

来自分类Dev

nil:NilClass <NoMethodError>的未定义方法'[]'

来自分类Dev

nil:NilClass的未定义方法'[]'-形式

Related 相关文章

  1. 1

    rspec,nil:NilClass的未定义方法`id'

  2. 2

    NoMethodError未定义的方法`',用于nil:NilClass

  3. 3

    NoMethodError未定义的方法`',用于nil:NilClass

  4. 4

    未定义的方法“ +”,用于nil:NilClass(NoMethodError)-Ruby

  5. 5

    未定义的方法'id'用于nil:NilClass用于对象收集

  6. 6

    Rails RSpec测试:nil:NilClass的未定义方法“传递”

  7. 7

    RSpec中nil:NilClass的未定义方法

  8. 8

    nil:NilClass(RSpec)的未定义方法“ comments”

  9. 9

    RSpec 错误:未定义的方法“包含?” 对于 nil:NilClass 和未定义的方法 `downcase' 对于 nil:NilClass

  10. 10

    nil:NilClass的未定义方法'id'(Controller#create)

  11. 11

    nil:NilClass的未定义方法'id'(Controller#create)

  12. 12

    Rails为nil:NilClass使用的未定义方法`id'

  13. 13

    nil 的未定义方法“id”的错误:NilClass

  14. 14

    nil:NilClass <NoMethodError>的未定义方法'>'

  15. 15

    RoR:nil:NilClass的未定义方法`[]'

  16. 16

    nil:NilClass的未定义方法`env'

  17. 17

    nil:NilClass的未定义方法“错误”

  18. 18

    NoMethodError:未定义的方法[[] ='for nil:NilClass

  19. 19

    nil:NilClass的未定义方法'%'

  20. 20

    nil:NilClass的未定义方法“ +”(NoMethodError)

  21. 21

    nil:NilClass的未定义方法“ new”

  22. 22

    nil:NilClass的未定义方法“ sub”

  23. 23

    nil:NilClass的未定义方法“名称”

  24. 24

    nil:NilClass的未定义方法'downcase'

  25. 25

    nil:NilClass的未定义方法“ microposts”

  26. 26

    Ruby:nil:NilClass的未定义方法`[] ='

  27. 27

    nil:NilClass的未定义方法“ questions”

  28. 28

    nil:NilClass <NoMethodError>的未定义方法'[]'

  29. 29

    nil:NilClass的未定义方法'[]'-形式

热门标签

归档