类变量继承

问题描述:

我想继承@@名称和@@从应用程序/控制器/ users_controller传递变量:类变量继承

class UsersController < ApplicationController 
require 'rubygems' 
require 'net/ldap' 
include AuthenticationsController 
def save 
@@name = params[:username] 
@@pass = params[:password] 
end 
end 

类,我想用变量的app/controllers/authentications_controller:

#!/usr/bin/env ruby 
require 'rubygems' 
require 'net/ldap' 
class AuthenticationsController 
host = 'ip' 
port = 389 

username = @@name 
password = @@pass 

ldap = Net::LDAP.new 
ldap.host = host 
ldap.port = port 
ldap.auth "uid=#{username},cn=users,cn=accounts,dc=aws,dc=company,dc=com", password 

if ldap.bind 
puts 'YES!' 
puts ldap.get_operation_result.message 
else 
puts 'NO :-(' 
puts ldap.get_operation_result.message 
end 
end 

全部跟踪:

app/controllers/users_controller.rb:4:in `<class:UsersController>' 
app/controllers/users_controller.rb:1:in `<top (required)>' 
activesupport (4.2.0) lib/active_support/inflector/methods.rb:261:in `const_get' 
activesupport (4.2.0) lib/active_support/inflector/methods.rb:261:in `block in constantize' 
activesupport (4.2.0) lib/active_support/inflector/methods.rb:259:in `each' 
activesupport (4.2.0) lib/active_support/inflector/methods.rb:259:in `inject' 
activesupport (4.2.0) lib/active_support/inflector/methods.rb:259:in `constantize' 
actionpack (4.2.0) lib/action_dispatch/routing/route_set.rb:69:in `controller_reference' 
actionpack (4.2.0) lib/action_dispatch/routing/route_set.rb:59:in `controller' 
actionpack (4.2.0) lib/action_dispatch/routing/route_set.rb:38:in `serve' 
actionpack (4.2.0) lib/action_dispatch/journey/router.rb:43:in `block in serve' 
actionpack (4.2.0) lib/action_dispatch/journey/router.rb:30:in `each' 
actionpack (4.2.0) lib/action_dispatch/journey/router.rb:30:in `serve' 
actionpack (4.2.0) lib/action_dispatch/routing/route_set.rb:802:in `call' 
rack (1.6.0) lib/rack/etag.rb:24:in `call' 
rack (1.6.0) lib/rack/conditionalget.rb:25:in `call' 
rack (1.6.0) lib/rack/head.rb:13:in `call' 
actionpack (4.2.0) lib/action_dispatch/middleware/params_parser.rb:27:in `call' 
actionpack (4.2.0) lib/action_dispatch/middleware/flash.rb:260:in `call' 
rack (1.6.0) lib/rack/session/abstract/id.rb:225:in `context' 
rack (1.6.0) lib/rack/session/abstract/id.rb:220:in `call' 
actionpack (4.2.0) lib/action_dispatch/middleware/cookies.rb:560:in `call' 
activerecord (4.2.0) lib/active_record/query_cache.rb:36:in `call' 
activerecord (4.2.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:647:in `call' 
activerecord (4.2.0) lib/active_record/migration.rb:378:in `call' 
actionpack (4.2.0) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call' 
activesupport (4.2.0) lib/active_support/callbacks.rb:88:in `call' 
activesupport (4.2.0) lib/active_support/callbacks.rb:88:in `_run_callbacks' 
activesupport (4.2.0) lib/active_support/callbacks.rb:734:in `_run_call_callbacks' 
activesupport (4.2.0) lib/active_support/callbacks.rb:81:in `run_callbacks' 
actionpack (4.2.0) lib/action_dispatch/middleware/callbacks.rb:27:in `call' 
actionpack (4.2.0) lib/action_dispatch/middleware/reloader.rb:73:in `call' 
actionpack (4.2.0) lib/action_dispatch/middleware/remote_ip.rb:78:in `call' 
actionpack (4.2.0) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call' 
actionpack (4.2.0) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call' 
railties (4.2.0) lib/rails/rack/logger.rb:38:in `call_app' 
railties (4.2.0) lib/rails/rack/logger.rb:20:in `block in call' 
activesupport (4.2.0) lib/active_support/tagged_logging.rb:68:in `block in tagged' 
activesupport (4.2.0) lib/active_support/tagged_logging.rb:26:in `tagged' 
activesupport (4.2.0) lib/active_support/tagged_logging.rb:68:in `tagged' 
railties (4.2.0) lib/rails/rack/logger.rb:20:in `call' 
actionpack (4.2.0) lib/action_dispatch/middleware/request_id.rb:21:in `call' 
rack (1.6.0) lib/rack/methodoverride.rb:22:in `call' 
rack (1.6.0) lib/rack/runtime.rb:18:in `call' 
activesupport (4.2.0) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call' 
rack (1.6.0) lib/rack/lock.rb:17:in `call' 
actionpack (4.2.0) lib/action_dispatch/middleware/static.rb:113:in `call' 
rack (1.6.0) lib/rack/sendfile.rb:113:in `call' 
railties (4.2.0) lib/rails/engine.rb:518:in `call' 
railties (4.2.0) lib/rails/application.rb:164:in `call' 
rack (1.6.0) lib/rack/lock.rb:17:in `call' 
rack (1.6.0) lib/rack/content_length.rb:15:in `call' 
rack (1.6.0) lib/rack/handler/webrick.rb:89:in `service' 
/home//.rvm/rubies/ruby-2.0.0-p598/lib/ruby/2.0.0/webrick/httpserver.rb:138:in `service' 
/home//.rvm/rubies/ruby-2.0.0-p598/lib/ruby/2.0.0/webrick/httpserver.rb:94:in `run' 
/home//.rvm/rubies/ruby-2.0.0-p598/lib/ruby/2.0.0/webrick/server.rb:295:in `block in start_thread' 

错误:

未初始化的常量UsersController :: AuthenticationsController

请帮我解决这个问题。提前致谢。

+1

你试图保存为类变量为user_id和密码。你不想这样做。 – 2015-03-03 07:20:05

我会推荐使用类变量只是存储用户信息,当你有其他的选择: -

1. User a dedicated table user_ldap(any other name you want) to store and delete 
2. Use session to store info at server side 
+0

我只是想获得用户输入的用户名和密码,并将它们发送到ldap进行验证,任何想法我怎么能做到这一点? – Gleb 2015-03-04 20:32:42