use*_*289 5 ruby-on-rails ruby-on-rails-4
所以我按照"从头开始验证"的轨道进行了操作 - http://railscasts.com/episodes/250-authentication-from-scratch
我知道rails 4不使用attr_accessible.我在我的用户控制器中将user_params定义为私有方法.出于某种原因,rails给了我一个用户参数的未定义错误.我正在开发另一个rails应用程序,我检查了它中的post控制器.除了工作之外,它完全一样.知道这里的问题是什么吗?
users_controller.rb
class UsersController < ApplicationController
def new
@user = User.new
end
def create
@user = User.create(user_params)
if @user.save
redirect_to root_url, :notice => "Signed up!"
else
render "new"
end
private
def user_params
params.require(:user).permit(:email, :password, :password_confirmation)
end
Run Code Online (Sandbox Code Playgroud)
错误消息:未定义的局部变量或方法`user_params'for#
完整堆栈跟踪:
app/controllers/
create' actionpack (4.1.1) lib/action_controller/metal/implicit_render.rb:4:inusers_controller.rb :7:在send_action'actionpack(4.1.1)lib/abstract_controller/base.rb:189:inprocess_action' actionpack (4.1.1) lib/action_controller/metal/rendering.rb:10:inprocess_action'actionpack(4.1.1)lib/abstract_controller/callbacks.rb:20:inblock in process_action' activesupport (4.1.1) lib/active_support/callbacks.rb:113:incall 'activesupport(4.1.1)lib/active_support/callbacks.rb:113:在call' activesupport (4.1.1) lib/active_support/callbacks.rb:229:in块中停止'activesupport(4.1.1)lib/active_support/callbacks.rb:229:在call' activesupport (4.1.1) lib/active_support/callbacks.rb:229:in块中停止'activesupport(4.1.1)lib /active_support/callbacks.rb:166:incall' activesupport (4.1.1) lib/active_support/callbacks.rb:166:in阻止'activesupport(4.1.1)lib/active_support/callbacks.rb:166:在call' activesupport (4.1.1) lib/active_support/callbacks.rb:166:in块中停止'activesupport(4.1.1)lib/active_support/callbacks.rb:166 :在call' activesupport (4.1.1) lib/active_support/callbacks.rb:166:in块中停止'activesupport(4.1.1)lib/active_support/callbacks.rb:86:在call' activesupport (4.1.1) lib/active_support/callbacks.rb:86:inrun_callbacks'actionpack(4.1.1)中lib/abstract_controller/callbacks.rb:19:在process_action' actionpack (4.1.1) lib/action_controller/metal/rescue.rb:29:inprocess_action'actionpack(4.1.1)中lib/action_controller/metal/instrumentation.rb:31:在block in process_action' activesupport (4.1.1) lib/active_support/notifications.rb:159:in仪器'activesupport(4.1.1)中的块中lib/active_support/notifications/instrumenter.rb:20:在instrument' activesupport (4.1.1) lib/active_support/notifications.rb:159:in仪器'actionpack(4.1.1)中lib/action_controller/metal/instrumentation.rb:30:在process_action' actionpack (4.1.1) lib/action_controller/metal/params_wrapper.rb:250:inpr ocess_action'activerecord(4.1.1)lib/active_record/railties/controller_runtime.rb:18:inprocess_action' actionpack (4.1.1) lib/abstract_controller/base.rb:136:inprocess'actionview(4.1.1)lib/action_view/rendering.rb:30:inprocess' actionpack (4.1.1) lib/action_controller/metal.rb:195:indispatch'actionpack(4.1.1)lib/action_controller/metal/rack_delegation.rb:13:indispatch' actionpack (4.1.1) lib/action_controller/metal.rb:231:inblock in action'actionpack(4.1.1)lib/action_dispatch/routing/route_set.rb:80:incall' actionpack (4.1.1) lib/action_dispatch/routing/route_set.rb:80:indispatch'actionpack(4.1.1)lib/action_dispatch/routing/route_set. rb:48:在call' actionpack (4.1.1) lib/action_dispatch/journey/router.rb:71:in调用块'actionpack(4.1.1)lib/action_dispatch/journey/router.rb:59:在each' actionpack (4.1.1) lib/action_dispatch/journey/router.rb:59:in调用'actionpack(4.1.1)lib/action_dispatch/routing/route_set.rb:676:在call' rack (1.5.2) lib/rack/etag.rb:23:in调用中'rack(1.5.2)lib/rack/conditionalget.rb:35:在call' rack (1.5.2) lib/rack/head.rb:11:in调用'actionpack(4.1.1)lib/action_dispatch/middleware/params_parser.rb:27:在call' actionpack (4.1.1) lib/action_dispatch/middleware/flash.rb:254:in调用'rack(1.5.2)lib/rack /session/abstract/id.rb:225:incontext' rack (1.5.2) lib/rack/session/abstract/id.rb:220:in调用'actionpack(4.1.1)lib/action_dispatch/middleware/cookies.rb:560:在call' activerecord (4.1.1) lib/active_record/query_cache.rb:36:in调用'activerecord(4.1.1)lib/active_record/connection_adapters/abstract/connection_pool .rb:621:在call' activerecord (4.1.1) lib/active_record/migration.rb:380:in调用'actionpack(4.1.1)lib/action_dispatch/middleware/callbacks.rb:29:在block in call' activesupport (4.1.1) lib/active_support/callbacks.rb:82:inrun_callbacks'ac中 tionpack(4.1.1)lib/action_dispatch/middleware/callbacks.rb:27:在call' actionpack (4.1.1) lib/action_dispatch/middleware/reloader.rb:73:in调用'actionpack(4.1.1)lib/action_dispatch/middleware/remote_ip.rb:76:在call' actionpack (4.1.1) lib/action_dispatch/middleware/debug_exceptions.rb:17:in调用'actionpack(4.1.1)lib /中action_dispatch/middleware/show_exceptions.rb:30:在call' railties (4.1.1) lib/rails/rack/logger.rb:38:incall_app'railties(4.1.1)lib/rails/rack/logger.rb:20:block in call' activesupport (4.1.1) lib/active_support/tagged_logging.rb:68:in在标记为'activesupport(4.1.1)lib/active_support/tagged_logging.rb的块中: 26:在tagged' activesupport (4.1.1) lib/active_support/tagged_logging.rb:68:in标记的'railties(4.1.1)lib/rails/rack/logger.rb:20:在call' actionpack (4.1.1) lib/action_dispatch/middleware/request_id.rb:21:in呼叫'机架(1.5.2)lib/rack/methodoverride.rb:21:在call' rack (1.5.2) lib/rack/runtime.rb:17:in呼叫'activesupport(4.1.1) )lib/active_support/cache/strategy/local_cache_middleware.rb:26:在call' rack (1.5.2) lib/rack/lock.rb:17:in调用'actionpack(4.1.1)lib/action_dispatch/middleware/static.rb:64:在call' rack (1.5.2) lib/rack/sendfile.rb:112:in调用'railties(4.1.1)lib/rails/engine .rb:514:在call' railties (4.1.1) lib/rails/application.rb:144:in电话'机架(1.5.2)lib/rack/lock.rb:17:在call' rack (1.5.2) lib/rack/content_length.rb:14:in电话'机架(1.5.2)lib/rack/handler/webrick.rb:60:在service' /home/rick/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/webrick/httpserver.rb:138:in服务'/ home /rick/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/webrick/httpserver.rb:94:in start_thread中的run' /home/rick/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/webrick/server.rb:295:in块'
Chr*_*det 12
数数你end的.你的代码应该是这样的:
class UsersController < ApplicationController
def new
@user = User.new
end
def create
@user = User.create(user_params)
if @user.save
redirect_to root_url, :notice => "Signed up!"
else
render "new"
end
end
private
def user_params
params.require(:user).permit(:email, :password, :password_confirmation)
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8675 次 |
| 最近记录: |