如何在Heroku上使用rdiscount?

我正在尝试将一个小测试应用程序推送到Heroku。 这是App和Gem文件: 应用程序: require ‘sinatra’ require ‘haml’ require ‘rdiscount’ set :markdown, :layout_engine => :haml, :layout => :layout get ‘/’ do haml :index end get ‘/blog’ do markdown :test end 的Gemfile: source :rubygems gem ‘sinatra’ gem ‘thin’ gem ‘haml’ gem ‘rdiscount’ 在推送到Heroku之前,我运行了bundle install 。 但是在尝试安装rdiscount gem时,推送到Heroku会失败: —–> Ruby/Rack app detected —–> Installing dependencies using Bundler version […]

如何在Mac OS X上安装没有sudo的gem

我已经阅读了很多post,但到目前为止还没有人完成这个伎俩。 我怎样才能在OSX(El Capitan Beta)上为我自己的用户安装gem? post建议例如指定-user-install但我不能在没有sudo情况下调用gem ,因为它会抛出权限错误。 我跟着“ 在OSX 10.10 Yosemite上安装gem作为用户 ”,但仍然无法调用gem 。 我按照上面的指南安装了Homebrew,安装了rbenv,用rbenv安装了一个Ruby版本,检查它是否正确加载,但是指南的最后一步是调用gem install ,我仍然无法做到。 安装rbenv后调用gem rbenv导致: /Users/Me/.rbenv/versions/2.1.5/lib/ruby/2.1.0/rubygems/stub_specification.rb:71:in `initialize’: Permission denied @ rb_sysopen – /Users/Ne/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/speci rbenv env转储: RBENV_VERSION=2.1.5 RBENV_ROOT=/Users/Me/.rbenv RBENV_HOOK_PATH=:/Users/Me/.rbenv/rbenv.d: /usr/local/etc/rbenv.d: /etc/rbenv.d: /usr/lib/rbenv/hooks PATH=/Users/Me/.rbenv/versions/2.1.5/bin: /usr/local/Cellar/rbenv/0.4.0/libexec: /Users/Me/.rbenv/plugins/rbenv-env/bin: /Users/Me/.rbenv/shims: /usr/local/heroku/bin: /usr/local/sbin: /usr/local/bin: /usr/local/share/npm/bin: /Applications/Atom.app/Contents/Resources/app/apm/bin: /Users/Me/.bin: /Applications/Atom.app/Contents/Resources/app/apm/node_modules/atom-package-manager/bin: /usr/local/bin:/usr/bin: /bin: /usr/sbin:/sbin: /opt/X11/bin: /usr/local/MacGPG2/bin RBENV_DIR=/Users/Me/.rbenv/plugins “ 每当我运行它时,brew和gem都抛出’权限被拒绝’错误 ”似乎有关,虽然它除了使用我可能不得不采用的其他方法之外没有解决。

让nokogiri使用更新版本的libxml2

我一直试图让Nokogiri安装在我的电脑(Mountain Lion)上与rspec和capybara一起使用,但对于我的生活,我无法让它运行正常。 据我所知,问题在于nokogiri使用了错误版本的libxml2。 到目前为止,我尝试使用Homebrew卸载并重新安装libxml2(确保它是最新版本),使用bundle卸载并重新安装nokogiri,并指定安装nokogiri gem时Homebrew安装的libxml2文件的确切路径。 我最近的安装说明看起来像这样 sudo gem install nokogiri — –with-xml2-include=/usr/local/Cellar/libxml2/2.9.0/include/libxml2 –with-xml2-lib=/usr/local/Cellar/libxml2/2.9.0/lib –with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 其中所有这些位置都正确对应于安装工具的位置。 但是,在运行bundle exec rspec spec/requests/static_pages.rb ,我仍然得到这个输出: /Users/alex/.rvm/gems/ruby-1.9.3-p286/gems/nokogiri-1.5.9/lib/nokogiri.rb:28:in `require’: dlopen(/Users/alex/.rvm/gems/ruby-1.9.3-p286/gems/nokogiri-1.5.9/lib/nokogiri/nokogiri.bundle, 9): Library not loaded: /usr/local/lib/libxml2.2.dylib (LoadError) Referenced from: /Users/alex/.rvm/gems/ruby-1.9.3-p286/gems/nokogiri-1.5.9/lib/nokogiri/nokogiri.bundle Reason: Incompatible library version: nokogiri.bundle requires version 12.0.0 or later, but libxml2.2.dylib provides version 10.0.0 – /Users/alex/.rvm/gems/ruby-1.9.3-p286/gems/nokogiri-1.5.9/lib/nokogiri/nokogiri.bundle from /Users/alex/.rvm/gems/ruby-1.9.3-p286/gems/nokogiri-1.5.9/lib/nokogiri.rb:28:in `’ from /Users/alex/.rvm/gems/ruby-1.9.3-p286@global/gems/bundler-1.3.4/lib/bundler/runtime.rb:72:in `require’ […]

如何多次执行带参数的Rake任务?

不可能在循环内多次 invoke相同的rake任务。 但是,我希望能够首先调用rake first并循环遍历数组,并在每次迭代时使用不同的参数调用second 。 由于invoke仅在第一次执行时,我尝试使用execute ,但Rake :: Task#execute不使用splat(*)运算符,只接受一个参数。 desc “first task” task :first do other_arg = “bar” [1,2,3,4].each_with_index do |n,i| if i == 0 Rake::Task[“foo:second”].invoke(n,other_arg) else # this doesn’t work Rake::Task[“foo:second”].execute(n,other_arg) end end end task :second, [:first_arg, :second_arg] => :prerequisite_task do |t,args| puts args[:first_arg] puts args[:second_arg] # … end 围绕它的一个方法就是将execute的参数放入一个数组中,然后再检查args的结构,但这似乎是hackish。 是否还有另一种(更好的?)方式来完成我想做的事情?

Ruby on Rails中的Button_to路线不好

我正在尝试使用button_to rails helper。 我写了以下代码: ‘mark-button’ %> 并收到以下错误消息 No route matches “/items/1/edit” 但是当我刷新页面时,它会进行相应的操作。 我得到的页面的URL是localhost:3000/items/1/edit ,这是正确的URL。 如果我将button_to命令切换到link_to加载的页面没有错误。 意思是这段代码: ‘mark-button’ %> 加载很好。 也许有一些我不知道的button_tofunction,但我迷路了。

PDF不包含带有pdf-reader的EOF标记(PDF :: Reader :: MalformedPDFError)

我正在使用’pdf-reader’gem来阅读pdf文档的原始内容,以便我可以将它们发布(http-post)到API。 要确认API实现可以从原始内容创建有效的pdf文档,我写了一个小小的要点来validation我的代码以阅读pdf内容。 出于某种原因,我总是得到’PDF不包含EOF标记(PDF :: Reader :: MalformedPDFError)’。 谁能指出我哪里出错了?

如何检查rails上传的文件类型?

我怎样才能看到提交的文件类型? 例如,csv或xls …请提供代码…我得到文件: aut_name = uploaded_io.original_filename File.open(Rails.root.join(‘public’, ‘uploads_prices’, uploaded_io.original_filename), ‘wb’) do |file| file.write(uploaded_io.read) end as_load(aut_name) 也许是通过MIMO,但如何?

如何使用oauth与Ruby连接到Google?

有oauth和oauth2gem,但我还没有找到一个用oauth连接谷歌的例子

使用ACL调用upload_file时,Ruby S3“访问被拒绝”错误

我正在尝试编写一个Ruby脚本,将文件上传到AWS并使该文件公开可用。 我做了以下事情: s3 = Aws::S3::Resource.new( credentials: Aws::Credentials.new(KEY, SECRET), region:’us-west-2′ ) obj = s3.bucket(‘stg-db’).object(‘key’) obj.upload_file(filename) 这似乎工作正常,除了该文件不公开,我无法获得它的公共URL。 但是当我登录S3时,我可以看到我的文件很好。 为了公开发布,我将最后一行更改为 obj.upload_file(filename, acl: ‘public-read’) 但是当我这样做时,我收到了拒绝访问的错误。 是否有一些权限设置我在我的S3存储桶上丢失导致问题,或者我是否以某种方式错误地调用了这个?

Ruby on Rails:如果post没有保存,我将如何留在同一页面?

def create @addpost = Post.new params[:data] if @addpost.save flash[:notice] = “Post has been saved successfully.” redirect_to posts_path else flash[:notice] = “Post can not be saved, please enter information.” end end 如果post没有保存,那么它会重定向到http://0.0.0.0:3000/posts ,但我需要留在页面上,带有文本输入字段,以便用户可以输入数据。 发布模型 class Post true validates :content, :presence => true validates :category_id, :presence => true validates :tags, :presence => true end 新方法 def new […]