小编Pro*_*ear的帖子

Bundle:从私有github存储库安装gem

我很难从git私有存储库捆绑gems:

gem 'test', :git => 'git://github.com/my_account/test.git'

myapp_folder$ bundle --verbose
Fetching git://github.com/my_account/test.git
fatal: The remote end hung up unexpectedly
Git error: command `git clone 'git://github.com/my_account/test.git' "/Library/Ruby/Gems/1.8/cache/bundler/git/test-7b1f0bd821d503c9d6d421d89c56850dad44c15a" --bare --no-hardlinks` in directory /Users/.../myapp_forlder has failed.
/Library/Ruby/Gems/1.8/gems/bundler-1.0.18/lib/bundler/source.rb:583:in `git'
/Library/Ruby/Gems/1.8/gems/bundler-1.0.18/lib/bundler/source.rb:652:in `cache'
/Library/Ruby/Gems/1.8/gems/bundler-1.0.18/lib/bundler/source.rb:550:in `specs'
/Library/Ruby/Gems/1.8/gems/bundler-1.0.18/lib/bundler/definition.rb:356:in `converge_locked_specs'
/Library/Ruby/Gems/1.8/gems/bundler-1.0.18/lib/bundler/definition.rb:345:in `each'
/Library/Ruby/Gems/1.8/gems/bundler-1.0.18/lib/bundler/definition.rb:345:in `converge_locked_specs'
/Library/Ruby/Gems/1.8/gems/bundler-1.0.18/lib/bundler/definition.rb:143:in `resolve'
/Library/Ruby/Gems/1.8/gems/bundler-1.0.18/lib/bundler/definition.rb:90:in `specs'
/Library/Ruby/Gems/1.8/gems/bundler-1.0.18/lib/bundler/definition.rb:85:in `resolve_remotely!'
/Library/Ruby/Gems/1.8/gems/bundler-1.0.18/lib/bundler/installer.rb:43:in `run'
/Library/Ruby/Gems/1.8/gems/bundler-1.0.18/lib/bundler/installer.rb:8:in `install'
/Library/Ruby/Gems/1.8/gems/bundler-1.0.18/lib/bundler/cli.rb:220:in `install'
/Library/Ruby/Gems/1.8/gems/bundler-1.0.18/lib/bundler/vendor/thor/task.rb:22:in `send'
/Library/Ruby/Gems/1.8/gems/bundler-1.0.18/lib/bundler/vendor/thor/task.rb:22:in `run'
/Library/Ruby/Gems/1.8/gems/bundler-1.0.18/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task'
/Library/Ruby/Gems/1.8/gems/bundler-1.0.18/lib/bundler/vendor/thor.rb:263:in `dispatch'
/Library/Ruby/Gems/1.8/gems/bundler-1.0.18/lib/bundler/vendor/thor/base.rb:386:in `start'
/Library/Ruby/Gems/1.8/gems/bundler-1.0.18/bin/bundle:13
/usr/bin/bundle:19:in `load'
/usr/bin/bundle:19
Run Code Online (Sandbox Code Playgroud)

它完全适用于推/拉/无论私有克隆它自己.

它与捆绑我的公共github存储库完美配合.

我在Mac OS上使用捆绑包v 1.0.18

我也试着制作一些git clone my_private_repo,它问我帐号密码.这是正常还是它应该看我的ssh配置,看看我已经有权访问.可能是重点,但我不知道如何在这个问题上进一步挖掘......

gem private github bundler ruby-on-rails-3

21
推荐指数
1
解决办法
1万
查看次数

rails prepend_view_path 可安装引擎

一方面,我有一个可安装的引擎,假设 Front Front 包含我的资产和几页它与 MainApp 隔离。我不希望它触及主应用程序。

另一方面,我希望我的 MainApp 使用布局和部分 Front。所以我这样设置布局:

class ApplicationController < ActionController::Base
    layout 'front/application'
end
Run Code Online (Sandbox Code Playgroud)

但是前端/应用直接引用引擎部分,因为隔离,像这样

render 'header' # front/ prefix is not required
Run Code Online (Sandbox Code Playgroud)

所以 MainApp 视图尝试加载 app/views/application/header 而不是 app/views/front/application/header

为了解决这个问题,我像这样放置了一个 prepend_view_path :

class ApplicationController < ActionController::Base
    layout 'front/application'
    before_filter :prepend_front
protected
    def prepend_front
       prepend_view_path "app/views/front"
    end
end
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为引擎路径指向供应商。引擎将它自己添加到 prepend 路径列表中:~/main_app/vendor/private_gems/front-0.0.2/app/views 而我的 prepred_front 方法创建了这个:~/main_app/app/views/front

我试图强行添加正确的路径(但它看起来很脏):

prepend_view_path "#{Rails.root}/vendor/private_gems/front-0.0.2/app/views/front"
Run Code Online (Sandbox Code Playgroud)

我不工作,只是使应用程序崩溃...

而我被困在这里。也许我的设计是错误的?

layout ruby-on-rails partial-views prepend rails-engines

7
推荐指数
1
解决办法
2727
查看次数

Rspec + Capybara:undefined last_response

我正在使用Rspec + Capybara设置我的测试环境,但是我得到了这个未定义的last_response.我在网上搜索和SO.我发现了一些关于版本的东西,使用git repo而不是rubygem源等......但它并没有改变我的线索.

这里的回溯:rspec --backtrace spec/controllers/api/plist/providers_listing_spec.rb失败:

1) Api::Plist::ProvidersController should return a successfull plist containing a list of providers
 Failure/Error: last_response.status.shoud be_success
 NameError:
   undefined local variable or method `last_response' for #<RSpec::Core::ExampleGroup::Nested_1:0x105658e10>
 # ./.gems/ruby/1.8/gems/rspec-expectations-2.6.0/lib/rspec/matchers/method_missing.rb:9:in `method_missing'
 # ./.gems/ruby/1.8/gems/actionpack-3.0.5/lib/action_dispatch/testing/assertions/routing.rb:175:in `method_missing'
 # ./spec/controllers/api/plist/providers_listing_spec.rb:19
 # /Library/Ruby/Gems/1.8/gems/rspec-core-2.6.4/lib/rspec/core/example.rb:48:in `instance_eval'
 # /Library/Ruby/Gems/1.8/gems/rspec-core-2.6.4/lib/rspec/core/example.rb:48:in `run'
 # /Library/Ruby/Gems/1.8/gems/rspec-core-2.6.4/lib/rspec/core/example.rb:107:in `with_around_hooks'
 # /Library/Ruby/Gems/1.8/gems/rspec-core-2.6.4/lib/rspec/core/example.rb:45:in `run'
 # /Library/Ruby/Gems/1.8/gems/rspec-core-2.6.4/lib/rspec/core/example_group.rb:294:in `run_examples'
 # /Library/Ruby/Gems/1.8/gems/rspec-core-2.6.4/lib/rspec/core/example_group.rb:290:in `map'
 # /Library/Ruby/Gems/1.8/gems/rspec-core-2.6.4/lib/rspec/core/example_group.rb:290:in `run_examples'
 # /Library/Ruby/Gems/1.8/gems/rspec-core-2.6.4/lib/rspec/core/example_group.rb:262:in `run'
 # /Library/Ruby/Gems/1.8/gems/rspec-core-2.6.4/lib/rspec/core/command_line.rb:24:in `run'
 # /Library/Ruby/Gems/1.8/gems/rspec-core-2.6.4/lib/rspec/core/command_line.rb:24:in `map'
 # /Library/Ruby/Gems/1.8/gems/rspec-core-2.6.4/lib/rspec/core/command_line.rb:24:in `run'
 # /Library/Ruby/Gems/1.8/gems/rspec-core-2.6.4/lib/rspec/core/reporter.rb:12:in `report'
 # /Library/Ruby/Gems/1.8/gems/rspec-core-2.6.4/lib/rspec/core/command_line.rb:21:in `run'
 # /Library/Ruby/Gems/1.8/gems/rspec-core-2.6.4/lib/rspec/core/runner.rb:80:in …
Run Code Online (Sandbox Code Playgroud)

capybara rspec2 ruby-on-rails-3

6
推荐指数
1
解决办法
2606
查看次数

Elixir Ecto:多个连接和可重用/可组合查询

在Ecto中,您可以像这样制作可重用/可组合的查询:

defmodule AModel
  #...

  def anonymous(q), do: q |> where([am], is_null(am.user_id))
end
Run Code Online (Sandbox Code Playgroud)

请参阅此博客文章中的更多示例.

但是,我遇到使用多个连接的问题.

假设我们有一个如下所示的模式:

  • AModel属于BModel
  • BModel属于CModel
  • CModel属于DModel

本文中提出的解决方案并不适用于深连接:

q = DModel
|> join(:inner, [dm], cm in assoc(dm, :c_models))
|> join(:inner, [_, cm], bm in assoc(cm, :b_models))
|> join(:inner, [_, _, bm], am in assoc(bm, :a_models)) 
|> AModel.anonymous
Run Code Online (Sandbox Code Playgroud)

查询函数将绑定表作为第一个(连接的第二个)参数.它包含以前的连接,并且很难加入订单.

在我们的例子中,anonymous函数以起始表为目标.但是在查询示例中,AModel是第4个绑定...

任何想法或技术摆脱这种顺序依赖?

编辑:

我从博客作者那里得到了答案.他告诉我,没有本地的其他方式来处理绑定而不是表中的位置.他还在这篇文章中强调了这一事实.

但是为了上帝的缘故,如果顺序只是重要的,为什么我不能在它上面创建一个将名称与绑定索引相关联的命名映射?

这问题太多了:p?

orm dependencies join elixir ecto

6
推荐指数
1
解决办法
1393
查看次数

MongoMapper在DB中存储文件时,从ASCII-8BIT到UTF-8的错误"\ xFF"

我在MongoDB中存储文件(来自远程API)有问题,我使用的是Ruby 1.9

class Foo
  include ::MongoMapper::Document
  key :bar, String
end
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:"\ xFF"从ASCII-8BIT到UTF-8

我尝试了以下事项:

foo.bar = pdf_data.encode('UTF-8')
foo.bar = pdf_data.force_encoding('UTF-8')
foo.bar = pdf_data.ensure_encoding('UTF-8',
  :external_encoding  => :sniff,
  :invalid_characters => :transcode
) # with github.com/Manfred/Ensure-encoding
Run Code Online (Sandbox Code Playgroud)

好吧,其中任何一个都有效,我在保存电话时收到错误...

我在网上看,但我没有找到任何明确的反应(或至少解决我的问题)......任何想法我应该做什么来能够存储它?

encoding mongodb mongomapper ruby-on-rails-3 ruby-1.9

3
推荐指数
1
解决办法
2089
查看次数