Undefined method error on signup
我有一个表'用户'有各种列。其中一列是用户名。我决定通过迁移删除该列。在这样做之后,我尝试通过注册表单创建一个新用户(创建操作)但是我收到了用户名的未定义方法错误,我不知道为什么。错误被@ user.save抛出。
以下是相关代码,首先是用户控制器的操作,然后是提交的实际表单。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | def user_params params.require(:user).permit(:name, :email, :password, :password_confirmation) end def create @user = User.new(user_params) if @user.save session[:user_id] = @user.id redirect_to @user, notice: 'Thank you for registering!' else render :new end end <%= form_for(@user) do |f| %> <%= render"shared/errors", object: @user %> <fieldset> <li class="required"> <%= f.label :name %> <%= f.text_field :name, size: 40, autofocus: true %> </li> <li class="required"> <%= f.label :email %> <%= f.email_field :email, size: 40 %> </li> <li class="required"> <%= f.label :password %> <%= f.password_field :password, size: 40 %> </li> <li class="required"> <%= f.label :password_confirmation,"Confirm Password" %> <%= f.password_field :password_confirmation, size: 40 %> </li> <p> <% if @user.new_record? %> <%= f.submit"Create Account" %> <% else %> <%= f.submit"Update Account" %> <% end %> </p> </fieldset> <% end %> |
有什么想法吗?堆栈跟踪,根据要求:
activemodel(4.0.5)lib / active_model / attribute_methods.rb:439:in
activerecord (4.0.5) lib/active_record/attribute_methods.rb:167:in
activemodel(4.0.5)lib / active_model / validator.rb:151:in
activemodel (4.0.5) lib/active_model/validator.rb:150:in
activemodel(4.0.5)lib / active_model / validator.rb:150:in
activerecord (4.0.5) lib/active_record/validations/presence.rb:5:in
activesupport(4.0.5)lib / active_support / callbacks.rb:283:in
activesupport (4.0.5) lib/active_support/callbacks.rb:447:in
activesupport(4.0.5)lib / active_support / callbacks.rb:80:in
activemodel (4.0.5) lib/active_model/validations.rb:373:in
activemodel(4.0.5)lib / active_model / validations / callbacks.rb:106:in
activesupport (4.0.5) lib/active_support/callbacks.rb:373:in
activesupport(4.0.5)lib / active_support / callbacks.rb:80:in
activemodel (4.0.5) lib/active_model/validations/callbacks.rb:106:in
activemodel(4.0.5)lib / active_model / validations.rb:314:
activerecord (4.0.5) lib/active_record/validations.rb:70:in
activerecord(4.0.5)lib / active_record / validations.rb:77:in
activerecord (4.0.5) lib/active_record/validations.rb:51:in
activerecord(4.0.5)lib / active_record / attribute_methods / dirty.rb:32:in
activerecord (4.0.5) lib/active_record/transactions.rb:270:in
activerecord(4.0.5)lib / active_record / transactions.rb:330:在事务中的
activerecord (4.0.5) lib/active_record/connection_adapters/abstract/database_statements.rb:213:in
activerecord(4.0.5)lib / active_record / connection_adapters / abstract / database_statements.rb:221:in
activerecord (4.0.5) lib/active_record/connection_adapters/abstract/database_statements.rb:213:in
activerecord(4.0.5)lib / active_record / transactions.rb:209:in
activerecord (4.0.5) lib/active_record/transactions.rb:327:in
activerecord(4.0.5)lib / active_record / transactions.rb:270:in
activerecord (4.0.5) lib/active_record/transactions.rb:285:in
activerecord(4.0.5)lib / active_record / transactions.rb:269:in
app/controllers/users_controller.rb:17:in
actionpack(4.0.5)lib / action_controller / metal / implicit_render.rb:4:in
actionpack (4.0.5) lib/abstract_controller/base.rb:189:in
actionpack(4.0.5)lib / action_controller / metal / rendering.rb:10:在process_action中的
actionpack (4.0.5) lib/abstract_controller/callbacks.rb:18:in
activesupport(4.0.5)lib / active_support / callbacks.rb:403:in
activesupport (4.0.5) lib/active_support/callbacks.rb:80:in
actionpack(4.0.5)lib / abstract_controller / callbacks.rb:17:in
actionpack (4.0.5) lib/action_controller/metal/rescue.rb:29:in
actionpack(4.0.5)lib / action_controller / metal / instrumentation.rb:31:在
activesupport (4.0.5) lib/active_support/notifications.rb:159:in
activesupport(4.0.5)lib / active_support / notifications / instrumenter.rb:20:in
activesupport (4.0.5) lib/active_support/notifications.rb:159:in
actionpack(4.0.5)lib / action_controller / metal / instrumentation.rb:30:在
actionpack (4.0.5) lib/action_controller/metal/params_wrapper.rb:250:in
activerecord(4.0.5)lib / active_record / railties / controller_runtime.rb:18:in
actionpack (4.0.5) lib/abstract_controller/base.rb:136:in
actionpack(4.0.5)lib / abstract_controller / rendering.rb:44:in
actionpack (4.0.5) lib/action_controller/metal.rb:195:in
actionpack(4.0.5)lib / action_controller / metal / rack_delegation.rb:13:in
actionpack (4.0.5) lib/action_controller/metal.rb:231:in
actionpack(4.0.5)lib / action_dispatch / routing / route_set.rb:80:in
actionpack (4.0.5) lib/action_dispatch/routing/route_set.rb:80:in
actionpack(4.0.5)lib / action_dispatch / routing / route_set.rb:48:in
actionpack (4.0.5) lib/action_dispatch/journey/router.rb:71:in
actionpack(4.0.5)lib / action_dispatch / journey / router.rb:59:in
actionpack (4.0.5) lib/action_dispatch/journey/router.rb:59:in
actionpack(4.0.5)lib / action_dispatch / routing / route_set.rb:674:in
rack (1.5.2) lib/rack/etag.rb:23:in
rack(1.5.2)lib / rack / conditionalget.rb:35:in
rack (1.5.2) lib/rack/head.rb:11:in
actionpack(4.0.5)lib / action_dispatch / middleware / params_parser.rb:27:in
actionpack (4.0.5) lib/action_dispatch/middleware/flash.rb:241:in
rack(1.5.2)lib / rack / session / abstract / id.rb:225:in
rack (1.5.2) lib/rack/session/abstract/id.rb:220:in
actionpack(4.0.5)lib / action_dispatch / middleware / cookies.rb:486:in
activerecord (4.0.5) lib/active_record/query_cache.rb:36:in
activerecord(4.0.5)lib / active_record / connection_adapters / abstract / connection_pool.rb:626:in
activerecord (4.0.5) lib/active_record/migration.rb:373:in
actionpack(4.0.5)lib / action_dispatch / middleware / callbacks.rb:29:in
activesupport (4.0.5) lib/active_support/callbacks.rb:373:in
activesupport(4.0.5)lib / active_support / callbacks.rb:80:in
actionpack (4.0.5) lib/action_dispatch/middleware/callbacks.rb:27:in
actionpack(4.0.5)lib / action_dispatch / middleware / reloader.rb:64:in
actionpack (4.0.5) lib/action_dispatch/middleware/remote_ip.rb:76:in
actionpack(4.0.5)lib / action_dispatch / middleware / debug_exceptions.rb:17:in
actionpack (4.0.5) lib/action_dispatch/middleware/show_exceptions.rb:30:in
railties(4.0.5)lib / rails / rack / logger.rb:38:in
railties (4.0.5) lib/rails/rack/logger.rb:20:in
activesupport(4.0.5)lib / active_support / tagged_logging.rb:68:in
activesupport (4.0.5) lib/active_support/tagged_logging.rb:26:in
activesupport(4.0.5)lib / active_support / tagged_logging.rb:68:in
railties (4.0.5) lib/rails/rack/logger.rb:20:in
actionpack(4.0.5)lib / action_dispatch / middleware / request_id.rb:21:in
rack (1.5.2) lib/rack/methodoverride.rb:21:in
rack(1.5.2)lib / rack / runtime.rb:17:in
activesupport (4.0.5) lib/active_support/cache/strategy/local_cache.rb:83:in
rack(1.5.2)lib / rack / lock.rb:17:in
actionpack (4.0.5) lib/action_dispatch/middleware/static.rb:64:in
rack(1.5.2)lib / rack / sendfile.rb:112:in
railties (4.0.5) lib/rails/engine.rb:511:in
railties(4.0.5)lib / rails / application.rb:97:in
rack (1.5.2) lib/rack/lock.rb:17:in
rack(1.5.2)lib / rack / content_length.rb:14:in
rack (1.5.2) lib/rack/handler/webrick.rb:60:in
读取堆栈跟踪,它告诉你什么是错的。 看看你的
1 | validates_presence_of :username |
要么
1 | validates :username, presence: true |