这是我正在试验的Rails CLI,并希望最终成为一个宝石.
任何人都有一个正则表达式或类似方法的想法,以确定当前工作目录是否是rails项目的rails根目录?
def check_current_directory
current_directory = Dir.getwd
if current_directory # How to determine if inside Rails root?
proceed
else
abort("You must be in the root of your Rails app to use this gem")
end
end
Run Code Online (Sandbox Code Playgroud)
任何帮助或想法表示赞赏
如果我以通常的方式指向gem,将它安装在我的环境中
gem 'activerecord_datawarehouse'
Run Code Online (Sandbox Code Playgroud)
rake -T不显示我的rake任务,但如果我直接指向gem源代码,就像
gem 'activerecord_datawarehouse', :path => "/home/acras/code/activerecord_datawarehouse"
Run Code Online (Sandbox Code Playgroud)
它显示和rake任务完美地工作.
我在这里可以缺少什么?我做了双重检查,安装的gem与我在源代码中的相同.
在处理开发宝石的"路径"时,我经历了一些痛苦.这是文件夹结构
生产代码:
lib/gem_name/foo/templates/some_template.erb
lib/gem_name/foo/bar.rb
Run Code Online (Sandbox Code Playgroud)
测试代码:
test/gem_name/foo/bar_test.rb
Run Code Online (Sandbox Code Playgroud)
在bar.rb中,我通过以下方式阅读模板:
File.read("templates/some_template.erb") => Errno::ENOENT: No such file or directory
Run Code Online (Sandbox Code Playgroud)
当我在RubyMine中的bar_test.rb中运行单元测试时,它给出了错误:
Errno::ENOENT: No such file or directory - D:/.../test/gem_name/foo/templates/some_template.erb
Run Code Online (Sandbox Code Playgroud)
显然路径上的测试是错误的.
我的问题是,
编辑:
因为__FILE__只返回它所写文件的路径,所以我现在定义fname(参见@ ckruse的答案)就像我需要的每个文件中的函数一样.它有效,但不优雅.也许有人会在这方面找到比我更好的解决方案.如果是的话,请告诉我.:)
我正在Ruby on Rails 4中编写一个系统,它是一种用于存储各种文件的文件存储库.每个文件都有自己的描述页面,显示有关它的信息.需要做的一件事是显示人类可读的文件类型.因此,对于.jpeg文件,它应该显示沿着Image或的行JPEG Image.并且.doc/ .docx它应该说Microsoft Office Word Document.
任何想法或方向将不胜感激.
谢谢!
我是一个红宝石/铁杆新手.
这是我的gemfile:
source 'https://rubygems.org'
ruby '2.0.0'
#ruby-gemset=railstutorial_rails_4_0
gem 'rails', '4.0.0'
group :development do
gem 'sqlite3', '1.3.8'
gem 'ruby-debug-ide'
end
gem 'sass-rails', '4.0.0'
gem 'uglifier', '2.1.1'
gem 'coffee-rails', '4.0.0'
gem 'jquery-rails', '3.0.4'
gem 'turbolinks', '1.1.1'
gem 'jbuilder', '1.0.2'
gem 'wash_out', :git => 'git://github.com/inossidabile/wash_out.git'
gem 'haml'
gem "railties", "~> 4.0.0"
group :doc do
gem 'sdoc', '0.3.20', require: false
end
Run Code Online (Sandbox Code Playgroud)
在捆绑更新,我得到这个:
Bundler could not find compatible versions for gem "railties":
In Gemfile:
rails (= 4.0.0) ruby depends on
railties (= 4.0.0) ruby
sass-rails …Run Code Online (Sandbox Code Playgroud) 我是红宝石的新手.当我试图"宝石安装therubyracer"它显示以下错误:
C:\Users\Desktop>gem install therubyracer
Temporarily enhancing PATH to include DevKit...
Building native extensions. This could take a while...
ERROR: Error installing therubyracer:
ERROR: Failed to build gem native extension.
C:/Ruby193/bin/ruby.exe extconf.rb
checking for main() in -lpthread... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=. …Run Code Online (Sandbox Code Playgroud) 我正在尝试制作Coverband gem,它将显示我的应用程序涵盖的代码。我遵循了来自此链接https://github.com/danmayer/coverband的命令,并使用“ rake测试”来生成覆盖率。添加
require 'simplecov'
SimpleCov.start
Run Code Online (Sandbox Code Playgroud)
如simplecov gem文档中所述测试test / test_helper.rb和config / application.rb。我的问题是如何获得整个点击的输出并添加我在应用程序中所做的输出?现在,我最终获得了初始化程序和配置的输出,但是我需要涵盖控制器,模型和视图的代码。有人可以帮忙吗?
为了将我的rails应用程序部署到heroku,我通过添加更改了我的Gemfile
gem 'pg'
Run Code Online (Sandbox Code Playgroud)
我曾经做过
bundle install
Run Code Online (Sandbox Code Playgroud)
我收到以下错误 -
Fetching gem metadata from https://rubygems.org/...........
Fetching gem metadata from https://rubygems.org/..
Resolving dependencies...
Using rake (10.1.1)
Using i18n (0.6.9)
Using minitest (4.7.5)
Using multi_json (1.8.2)
Using atomic (1.1.14)
Using thread_safe (0.1.3)
Using tzinfo (0.3.38)
Using activesupport (4.0.0)
Using builder (3.1.4)
Using erubis (2.7.0)
Using rack (1.5.2)
Using rack-test (0.6.2)
Using actionpack (4.0.0)
Using mime-types (1.25.1)
Using polyglot (0.3.3)
Using treetop (1.4.15)
Using mail (2.5.4)
Using actionmailer (4.0.0)
Using activemodel (4.0.0)
Using activerecord-deprecated_finders (1.0.3) …Run Code Online (Sandbox Code Playgroud) 当rails server我尝试在我当前的目录(这是一个新的rails项目)中运行时,它说我需要安装mysql2gem.起初,我不知道这意味着什么......然后,我做了一些戳,最后决定安装宝石.但是,我得到了这个超级麻烦的错误(因为我只花了2个小时试图调查,并解决了另一个错误).我处于放弃的边缘,但我真的想试试铁轨.请帮忙!
目前,如果我跑sudo gem install mysql2,或者甚至有些人告诉我在网上做gem install mysql -- \ --with-mysql-config=/Applications/MAMP/Library/bin/mysql_config(我有MAMP),它会给我以下错误:
Building native extensions. This could take a while...
ERROR: Error installing mysql2:
ERROR: Failed to build gem native extension.
/Users/vicky/.rvm/rubies/ruby-2.0.0-p247/bin/ruby extconf.rb
checking for ruby/thread.h... yes
checking for rb_thread_call_without_gvl() in ruby/thread.h... yes
checking for rb_thread_blocking_region()... yes
checking for rb_wait_for_single_fd()... yes
checking for rb_hash_dup()... yes
checking for rb_intern3()... yes
-----
Using mysql_config at /Applications/MAMP/Library/bin/mysql_config
-----
checking for mysql.h... yes
checking for errmsg.h... yes …Run Code Online (Sandbox Code Playgroud) 在我的新OSX Mavericks安装上,我想尝试一下Rubymine,但是无法使调试器工作(尽管我设法使用IntelliJ和ruby插件在Windows 7上运行).
这就是我所做的(已经安装了XCode和命令行工具):
homebrew install ruby
gem update --system
Run Code Online (Sandbox Code Playgroud)
然后我安装了Rubymine并打开了我的一些项目.启动调试器后,rubymine尝试安装依赖项:
无法安装Gems.未安装以下gem:/Applications/RubyMine.app/rb/gems/ruby-debug-ide-0.4.22.gem:安装ruby-debug-ide-0.4.22.gem时出错:ERROR:无法构建gem native延期./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby mkrf_conf.rb安装基础gem您没有/Library/Ruby/Gems/2.0.0目录的写权限./Library/Ruby/Site/2.0.0/rubygems/installer.rb:620:in
verify_gem_home' /Library/Ruby/Site/2.0.0/rubygems/installer.rb:740:inpre_install_checks'install' /Library/Ruby/Site/2.0.0/rubygems/request_set.rb:136:in/Library/Ruby/Site/2.0.0/rubygems / installer.rb:213: in block in install'/ Library/Ruby /Site/2.0.0/rubygems/request_set.rb:120:ineach' /Library/Ruby/Site/2.0.0/rubygems/request_set.rb:120:ininstall'/ Library/Ruby/Site/2.0.0/rubygems /install' mkrf_conf.rb:34:independency_installer.rb:389:in救援'mkrf_conf.rb:27:in'' rake失败,退出代码1 Gem文件将保持安装在/ Volumes/OSX DATA/Users/freakazoid/.gem/ruby/2.0.0/gems/ruby-debug-ide-0.4.22中进行检查.结果记录到/ Volumes/OSX DATA/Users/freakazoid/.gem/ruby/2.0.0/extensions/universal-darwin-13/2.0.0/ruby-debug-ide-0.4.22/gem_make.out/Applications/RubyMine.app/rb/gems/debase-0.0.9.gem:安装debase-0.0.9.gem时出错:错误:无法构建gem原生扩展./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby:无效选项-D( - h将显示有效选项)(RuntimeError)extconf失败,退出代码1 Gem文件将保持安装在/ Volumes/OSX DATA/Users/freakazoid/.gem/ruby/2.0.0/gems/debase-0.0.9中进行检查.结果记录到/ Volumes/OSX DATA/Users/freakazoid/.gem/ruby/2.0.0/extensions/universal-darwin-13/2.0.0/debase-0.0.9/gem_make.out
我可以毫无问题地做一个
gem install debugger
Run Code Online (Sandbox Code Playgroud)
在我的osx终端上
有帮助吗?