Nomethoderror试图使用带有rails的Devise

时间:2016-08-18 23:11:29

标签: ruby-on-rails ruby devise

我正在关注Devise的指南,我目前仍然坚持这个:

`NoMethodError in TasksController#new undefined method `tasks' for nil:NilClass

Task.rb

  class Task < ActiveRecord::Base
    belongs_to :user
  end

User.rb

 class User < ActiveRecord::Base
   # Include default devise modules. Others available are:
   # :confirmable, :lockable, :timeoutable and :omniauthable
   devise :database_authenticatable, :registerable,
     :recoverable, :rememberable, :trackable, :validatable
   has_many :tasks
 end

TaskController.rb

def new
  @task = current_user.tasks.build
end

def create
  @task = current_user.tasks.build(task_params)
end

DB - Schema.rb

create_table "tasks", force: :cascade do |t|
  t.string   "name"
  t.text     "content"
  t.datetime "created_at", null: false
  t.datetime "updated_at", null: false
  t.integer  "user_id"
end

create_table "users", force: :cascade do |t|
  t.string   "email",                  default: "", null: false
  t.string   "encrypted_password",     default: "", null: false
  t.string   "reset_password_token"
  t.datetime "reset_password_sent_at"
  t.datetime "remember_created_at"
  t.integer  "sign_in_count",          default: 0,  null: false
  t.datetime "current_sign_in_at"
  t.datetime "last_sign_in_at"
  t.string   "current_sign_in_ip"
  t.string   "last_sign_in_ip"
  t.datetime "created_at",                          null: false
  t.datetime "updated_at",                          null: false
 end

非常感谢帮助!

1 个答案:

答案 0 :(得分:0)

错误消息显示:nil.tasks

这意味着未创建User类对象。

尝试登录。登录后,错误将得到解决。