Khi người dùng mới gửi biểu mẫu đăng ký người dùng mới, họ nhận được thông báo lỗi dưới đây. Tôi nghi ngờ nó vì devise/registrations_controller.rb không tồn tại.Devise and Rails - ArgumentError trong Devise :: RegistrationsController # create
Tôi có cần phải tạo cấu trúc thư mục và bộ điều khiển này hay tôi có thể sửa đổi tuyến đường.rb để tránh tìm kiếm bộ điều khiển không tồn tại?
Lỗi:
ArgumentError in Devise::RegistrationsController#create
wrong number of arguments (0 for 1)
Rails.root: C:/Users/COMPAQ/Documents/NetBeansProjects/RailsBlog
Parameters:
{"utf8"=>"✓",
"authenticity_token"=>"xxxxxxxxxxxxxxxxxxxxxx/c=",
"user"=>{"email"=>"[email protected]",
"password"=>"[FILTERED]",
"password_confirmation"=>"[FILTERED]"},
"commit"=>"Sign up"}
routes.rb:
RailsBlog::Application.routes.draw do
devise_for :users
User.rb (mô hình):
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :token_authenticatable, :confirmable,
# :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
# Setup accessible (or protected) attributes for your model
attr_accessible :email, :password, :password_confirmation, :remember_me
attr_accessible :name, :email, :password, :password_confirmation
has_secure_password
#has_many :microposts, dependent: :destroy
#has_many :relationships, foreign_key: "follower_id", dependent: :destroy
#has_many :followed_users, through: :relationships, source: :followed
#has_many :reverse_relationships, foreign_key: "followed_id",
#class_name: "Relationship",
#dependent: :destroy
#has_many :followers, through: :reverse_relationships, source: :follower
before_save { |user| user.email = email.downcase }
before_save :create_remember_token
validates :name, presence: true, length: { maximum: 50 }
VALID_EMAIL_REGEX = /\A[\w+\-.][email protected][a-z\d\-.]+\.[a-z]+\z/i
validates :email, presence: true,
format: { with: VALID_EMAIL_REGEX },
uniqueness: { case_sensitive: false }
validates :password, presence: true, length: { minimum: 6 }
validates :password_confirmation, presence: true
def feed
Micropost.from_users_followed_by(self)
end
def following?(other_user)
relationships.find_by_followed_id(other_user.id)
end
def follow!(other_user)
relationships.create!(followed_id: other_user.id)
end
def unfollow!(other_user)
relationships.find_by_followed_id(other_user.id).destroy
end
private
def create_remember_token
self.remember_token = SecureRandom.urlsafe_base64
end
end
vết trở lại - Tôi đã có một cái nhìn, nhưng không thể xác định nơi vấn đề nằm:
devise (2.1.2) lib/devise/models/database_authenticatable.rb:109:in `password_digest'
activemodel (3.2.1) lib/active_model/errors.rb:254:in `block in add_on_blank'
activemodel (3.2.1) lib/active_model/errors.rb:253:in `each'
activemodel (3.2.1) lib/active_model/errors.rb:253:in `add_on_blank'
activemodel (3.2.1) lib/active_model/validations/presence.rb:9:in `validate'
activesupport (3.2.1) lib/active_support/callbacks.rb:310:in `_callback_before_185'
activesupport (3.2.1) lib/active_support/callbacks.rb:484:in `_run__875543711__validate__219075599__callbacks'
activesupport (3.2.1) lib/active_support/callbacks.rb:405:in `__run_callback'
activesupport (3.2.1) lib/active_support/callbacks.rb:385:in `_run_validate_callbacks'
activesupport (3.2.1) lib/active_support/callbacks.rb:81:in `run_callbacks'
activemodel (3.2.1) lib/active_model/validations.rb:212:in `run_validations!'
activemodel (3.2.1) lib/active_model/validations/callbacks.rb:53:in `block in run_validations!'
activesupport (3.2.1) lib/active_support/callbacks.rb:425:in `_run__875543711__validation__219075599__callbacks'
activesupport (3.2.1) lib/active_support/callbacks.rb:405:in `__run_callback'
activesupport (3.2.1) lib/active_support/callbacks.rb:385:in `_run_validation_callbacks'
activesupport (3.2.1) lib/active_support/callbacks.rb:81:in `run_callbacks'
activemodel (3.2.1) lib/active_model/validations/callbacks.rb:53:in `run_validations!'
activemodel (3.2.1) lib/active_model/validations.rb:179:in `valid?'
activerecord (3.2.1) lib/active_record/validations.rb:69:in `valid?'
activerecord (3.2.1) lib/active_record/validations.rb:77:in `perform_validations'
activerecord (3.2.1) lib/active_record/validations.rb:50:in `save'
activerecord (3.2.1) lib/active_record/attribute_methods/dirty.rb:22:in `save'
activerecord (3.2.1) lib/active_record/transactions.rb:241:in `block (2 levels) in save'
activerecord (3.2.1) lib/active_record/transactions.rb:295:in `block in with_transaction_returning_status'
activerecord (3.2.1) lib/active_record/connection_adapters/abstract/database_statements.rb:190:in `transaction'
activerecord (3.2.1) lib/active_record/transactions.rb:208:in `transaction'
activerecord (3.2.1) lib/active_record/transactions.rb:293:in `with_transaction_returning_status'
activerecord (3.2.1) lib/active_record/transactions.rb:241:in `block in save'
activerecord (3.2.1) lib/active_record/transactions.rb:252:in `rollback_active_record_state!'
activerecord (3.2.1) lib/active_record/transactions.rb:240:in `save'
devise (2.1.2) app/controllers/devise/registrations_controller.rb:15:in `create'
actionpack (3.2.1) lib/action_controller/metal/implicit_render.rb:4:in `send_action'
actionpack (3.2.1) lib/abstract_controller/base.rb:167:in `process_action'
actionpack (3.2.1) lib/action_controller/metal/rendering.rb:10:in `process_action'
actionpack (3.2.1) lib/abstract_controller/callbacks.rb:18:in `block in process_action'
activesupport (3.2.1) lib/active_support/callbacks.rb:436:in `_run__853675117__process_action__862668662__callbacks'
activesupport (3.2.1) lib/active_support/callbacks.rb:405:in `__run_callback'
activesupport (3.2.1) lib/active_support/callbacks.rb:385:in `_run_process_action_callbacks'
activesupport (3.2.1) lib/active_support/callbacks.rb:81:in `run_callbacks'
actionpack (3.2.1) lib/abstract_controller/callbacks.rb:17:in `process_action'
actionpack (3.2.1) lib/action_controller/metal/rescue.rb:29:in `process_action'
actionpack (3.2.1) lib/action_controller/metal/instrumentation.rb:30:in `block in process_action'
activesupport (3.2.1) lib/active_support/notifications.rb:123:in `block in instrument'
activesupport (3.2.1) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
activesupport (3.2.1) lib/active_support/notifications.rb:123:in `instrument'
actionpack (3.2.1) lib/action_controller/metal/instrumentation.rb:29:in `process_action'
actionpack (3.2.1) lib/action_controller/metal/params_wrapper.rb:205:in `process_action'
activerecord (3.2.1) lib/active_record/railties/controller_runtime.rb:18:in `process_action'
actionpack (3.2.1) lib/abstract_controller/base.rb:121:in `process'
actionpack (3.2.1) lib/abstract_controller/rendering.rb:45:in `process'
actionpack (3.2.1) lib/action_controller/metal.rb:203:in `dispatch'
actionpack (3.2.1) lib/action_controller/metal/rack_delegation.rb:14:in `dispatch'
actionpack (3.2.1) lib/action_controller/metal.rb:246:in `block in action'
actionpack (3.2.1) lib/action_dispatch/routing/route_set.rb:66:in `call'
actionpack (3.2.1) lib/action_dispatch/routing/route_set.rb:66:in `dispatch'
actionpack (3.2.1) lib/action_dispatch/routing/route_set.rb:30:in `call'
actionpack (3.2.1) lib/action_dispatch/routing/mapper.rb:40:in `call'
journey (1.0.4) lib/journey/router.rb:68:in `block in call'
journey (1.0.4) lib/journey/router.rb:56:in `each'
journey (1.0.4) lib/journey/router.rb:56:in `call'
actionpack (3.2.1) lib/action_dispatch/routing/route_set.rb:589:in `call'
warden (1.2.1) lib/warden/manager.rb:35:in `block in call'
warden (1.2.1) lib/warden/manager.rb:34:in `catch'
warden (1.2.1) lib/warden/manager.rb:34:in `call'
actionpack (3.2.1) lib/action_dispatch/middleware/best_standards_support.rb:17:in `call'
rack (1.4.1) lib/rack/etag.rb:23:in `call'
rack (1.4.1) lib/rack/conditionalget.rb:35:in `call'
actionpack (3.2.1) lib/action_dispatch/middleware/head.rb:14:in `call'
actionpack (3.2.1) lib/action_dispatch/middleware/params_parser.rb:21:in `call'
actionpack (3.2.1) lib/action_dispatch/middleware/flash.rb:242:in `call'
rack (1.4.1) lib/rack/session/abstract/id.rb:205:in `context'
rack (1.4.1) lib/rack/session/abstract/id.rb:200:in `call'
actionpack (3.2.1) lib/action_dispatch/middleware/cookies.rb:338:in `call'
activerecord (3.2.1) lib/active_record/query_cache.rb:64:in `call'
activerecord (3.2.1) lib/active_record/connection_adapters/abstract/connection_pool.rb:443:in `call'
actionpack (3.2.1) lib/action_dispatch/middleware/callbacks.rb:28:in `block in call'
activesupport (3.2.1) lib/active_support/callbacks.rb:405:in `_run__805649291__call__219075599__callbacks'
activesupport (3.2.1) lib/active_support/callbacks.rb:405:in `__run_callback'
activesupport (3.2.1) lib/active_support/callbacks.rb:385:in `_run_call_callbacks'
activesupport (3.2.1) lib/active_support/callbacks.rb:81:in `run_callbacks'
actionpack (3.2.1) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
actionpack (3.2.1) lib/action_dispatch/middleware/reloader.rb:65:in `call'
actionpack (3.2.1) lib/action_dispatch/middleware/remote_ip.rb:31:in `call'
actionpack (3.2.1) lib/action_dispatch/middleware/debug_exceptions.rb:16:in `call'
actionpack (3.2.1) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
railties (3.2.1) lib/rails/rack/logger.rb:26:in `call_app'
railties (3.2.1) lib/rails/rack/logger.rb:16:in `call'
actionpack (3.2.1) lib/action_dispatch/middleware/request_id.rb:22:in `call'
rack (1.4.1) lib/rack/methodoverride.rb:21:in `call'
rack (1.4.1) lib/rack/runtime.rb:17:in `call'
activesupport (3.2.1) lib/active_support/cache/strategy/local_cache.rb:72:in `call'
rack (1.4.1) lib/rack/lock.rb:15:in `call'
actionpack (3.2.1) lib/action_dispatch/middleware/static.rb:53:in `call'
railties (3.2.1) lib/rails/engine.rb:479:in `call'
railties (3.2.1) lib/rails/application.rb:220:in `call'
rack (1.4.1) lib/rack/content_length.rb:14:in `call'
railties (3.2.1) lib/rails/rack/log_tailer.rb:14:in `call'
rack (1.4.1) lib/rack/handler/webrick.rb:59:in `service'
C:/RUBY/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/webrick/httpserver.rb:138:in `service'
C:/RUBY/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/webrick/httpserver.rb:94:in `run'
C:/RUBY/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/webrick/server.rb:191:in `block in start_thread'
Đã thêm thông tin theo dõi và mô hình người dùng vào câu hỏi. Bạn đã xác định vấn đề như thế nào? – dmuk
Dòng thứ 5 của backtrace là đầu mối mà nó đã được xác nhận: 'lib/active_model/validations/presence.rb: 9: in 'validate''. Dòng đầu tiên cho thấy phương thức được gọi sai ('password_digest'). –
Hoàn hảo. Lưu ngày của tôi! +1 – djserva