权限被拒绝 @ dir_s_mkdir - /spec (Errno::EACCES)
Permission denied @ dir_s_mkdir - /spec (Errno::EACCES)
运行简单命令
rails g model User
导致:
→ 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'
其余省略。
我正在使用 工厂女工 rails。 spec
和 spec/factories folders
的权限是 drwxr-xr-x(755,更改为 777 没有效果)。重新安装 factory_girl_rails
没有效果。 Ruby 2.2.2
(已经尝试过不同的版本)
也许你做到了:
# config/application.rb
config.generators do |g|
g.fixture_replacement :factory_girl, dir: "/spec/factories"
end
如果是这样,您需要将其从“/spec/factories”更改为"spec/factories"
参考:https://github.com/everydayrails/rails-4-1-rspec-3-0/blob/master/config/application.rb
您需要为系统root用户授予访问所需目录的权限
sudo chmod 777 -R your_project_directory_to_be_access
在您的情况下,您可以使用:
sudo chmod 777 -R /spec/
出于安全原因,请记住:
chmod 777
赋予每个人读、写和执行权限,这对于大多数问题来说确实太多了。
运行简单命令
rails g model User
导致:
→ 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'
其余省略。
我正在使用 工厂女工 rails。 spec
和 spec/factories folders
的权限是 drwxr-xr-x(755,更改为 777 没有效果)。重新安装 factory_girl_rails
没有效果。 Ruby 2.2.2
(已经尝试过不同的版本)
也许你做到了:
# config/application.rb
config.generators do |g|
g.fixture_replacement :factory_girl, dir: "/spec/factories"
end
如果是这样,您需要将其从“/spec/factories”更改为"spec/factories"
参考:https://github.com/everydayrails/rails-4-1-rspec-3-0/blob/master/config/application.rb
您需要为系统root用户授予访问所需目录的权限
sudo chmod 777 -R your_project_directory_to_be_access
在您的情况下,您可以使用:
sudo chmod 777 -R /spec/
出于安全原因,请记住:
chmod 777
赋予每个人读、写和执行权限,这对于大多数问题来说确实太多了。