Require_relative无法加载此类文件版本

时间:2015-07-13 11:34:23

标签: ruby-on-rails gem

我正在尝试加载我最近创建的新gem,并且还没有任何代码,因为当我尝试仅为测试加载时出现此错误。

我的代码: 我的宝石名称是 tracky

tracky.gemspec

public function loginAction(Request $request)
    {
    $session = $this->getRequest()->getSession();
    if( $session->get('userId') && $session->get('userId') != '' && $session->get('type') == '2')
    {
            //if user is login then it will be redirect to login page               
       return $this->redirect($this->generateUrl('registrarGeneral_dashboard'));
    }
    $em = $this->getDoctrine()->getEntityManager();
    $repository = $em->getRepository('DRPAdminBundle:User');
    if ($request->getMethod() == 'POST')
        {
        $session->clear();
            $userName = $request->get('username');
            $password = md5($request->get('password'));

        //find email, password type and status of User
                $user = $repository->findOneBy(array('username' => $userName, 'password' => $password,'type'=>2,'status'=>1 ));
        $userEmail = $repository->findOneBy(array('email' => $userName, 'password' => $password,'type'=>2,'status'=>1 ));
            if ($user) 
            {

            //set session of User login                        
                $session->set('userId', $user->getId());
            $session->set('type', 2);
            $session->set('nameRegistrar', $user->getFirstName());
            $session->set('pictureRegistrar', $user->getPicture()); 

            //echo "<pre>";print_r($session->get('picture'));die;            
                return $this->redirect($this->generateUrl('registrarGeneral_dashboard'));
            } 

        if ($userEmail) 
            {

            $session->set('type', 2);                      
                $session->set('userId', $userEmail->getId());
            $session->set('nameRegistrar', $userEmail->getFirstName());
            $session->set('pictureRegistrar', $userEmail->getPicture()); 

            //echo "<pre>";print_r($session->get('picture'));die;            
               return $this->redirect($this->generateUrl('registrarGeneral_dashboard'));
            } 

            else 
            {
                    return $this->render('DRPRegistrarGeneralBundle:Pages:login.html.twig', array('name' => 'Invalid Email/Password'));
            }

    }    
        return $this->render('DRPRegistrarGeneralBundle:Pages:login.html.twig');
     }

我的文件夹:

lib = File.expand_path('../lib', __FILE__)
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
require 'tracky/version'

Gem::Specification.new do |spec|
  spec.name          = "tracky"
  spec.version       = Tracky::VERSION
  spec.authors       = ["Matheus Mendes"]
  spec.email         = ["matheus.mendescf@gmail.com"]
  spec.summary       = %q{TODO: Write a short summary. Required.}
  spec.description   = %q{TODO: Write a longer description. Optional.}
  spec.homepage      = ""
  spec.license       = "MIT"

  spec.files         = [`git ls-files -z`.split("\x0")]
  spec.executables   = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
  spec.test_files    = spec.files.grep(%r{^(test|spec|features)/})
  spec.require_paths = ["lib"]

  spec.add_development_dependency "bundler", "~> 1.7"
  spec.add_development_dependency "rake", "~> 10.0"
end

错误:

http://postimg.org/image/ve7nlyja7/

我在tracky的根目录中使用了irb

1 个答案:

答案 0 :(得分:0)

lib/tracky.rb文件中,将require "tracky/version"更改为require_relative "tracky/version"

这是因为版本文件相对于lib/tracky.rb文件位于。我建议您将require保留为gem依赖项。

检查this答案中requirerequire_relative之间的区别。

晚了聚会,但我想它可以帮助下一个人。我在面对同一问题时遇到了这个问题。