权限被拒绝@ dir_s_mkdir - / spec(Errno :: EACCES)

时间:2016-01-29 20:13:01

标签: ruby-on-rails ruby factory-bot

运行简单命令

→ bundle exec rails g model User
      invoke  active_record
      create    db/migrate/20160128191020_create_users.rb
      create    app/models/user.rb
      invoke    rspec
      create      spec/models/user_spec.rb
      invoke      factory_girl
      create        /spec/factories/users.rb
/Users/khataev/.rbenv/versions/2.2.2/lib/ruby/2.2.0/fileutils.rb:252:in `mkdir': Permission denied @ dir_s_mkdir - /spec (Errno::EACCES)
    from /Users/khataev/.rbenv/versions/2.2.2/lib/ruby/2.2.0/fileutils.rb:252:in `fu_mkdir'
    from /Users/khataev/.rbenv/versions/2.2.2/lib/ruby/2.2.0/fileutils.rb:226:in `block (2 levels) in mkdir_p'
    from /Users/khataev/.rbenv/versions/2.2.2/lib/ruby/2.2.0/fileutils.rb:224:in `reverse_each'
    from /Users/khataev/.rbenv/versions/2.2.2/lib/ruby/2.2.0/fileutils.rb:224:in `block in mkdir_p'
    from /Users/khataev/.rbenv/versions/2.2.2/lib/ruby/2.2.0/fileutils.rb:210:in `each'
    from /Users/khataev/.rbenv/versions/2.2.2/lib/ruby/2.2.0/fileutils.rb:210:in `mkdir_p'
    from /Users/khataev/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/thor-0.19.1/lib/thor/actions/create_file.rb:61:in `block in invoke!'
    from /Users/khataev/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/thor-0.19.1/lib/thor/actions/empty_directory.rb:116:in `call'
    from /Users/khataev/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/thor-0.19.1/lib/thor/actions/empty_directory.rb:116:in `invoke_with_conflict_check'
    from /Users/khataev/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/thor-0.19.1/lib/thor/actions/create_file.rb:60:in `invoke!'
    from /Users/khataev/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/thor-0.19.1/lib/thor/actions.rb:94:in `action'
    from /Users/khataev/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/thor-0.19.1/lib/thor/actions/create_file.rb:25:in `create_file'
    from /Users/khataev/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/factory_girl_rails-4.5.0/lib/generators/factory_girl/model/model_generator.rb:46:in `create_factory_file'
    from /Users/khataev/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/factory_girl_rails-4.5.0/lib/generators/factory_girl/model/model_generator.rb:25:in `create_fixture_file'

导致:

spec

休息被省略。

我正在使用工厂女孩专栏spec/factories foldersfactory_girl_rails'权限是 drwxr-xr-x(755,更改为777无效)。重新安装Ruby 2.2.2无效。 (|||) :: Bool -> Bool -> Bool a ||| b = (a || b) `unamb` (b || a) (已尝试过不同的版本)

https://jsfiddle.net/ahmadabdul3/xja61kyx/

2 个答案:

答案 0 :(得分:1)

也许你做过:

.house-card

如果是这样,你需要从" / spec / factories"到"规范/工厂"

参考:https://github.com/everydayrails/rails-4-1-rspec-3-0/blob/master/config/application.rb

答案 1 :(得分:0)

您需要授予访问系统root用户所需目录的权限

sudo chmod 777 -R your_project_directory_to_be_access

在您的情况下,您可以使用:

sudo chmod 777 -R /spec/

出于安全考虑,请记住:

chmod 777赋予每个人阅读,写作和执行权利,这对于大多数问题来说确实太过分了。