小编Vik*_*rón的帖子

如何从模块中获取puppet清单中的文件

我试图从puppet清单中的本地模块中获取文件(在独立模式下使用puppet):

file {
  '/home/repowt/.crontab':
    ensure => present,
    source => 'puppet:///modules/site/crontab';
}
Run Code Online (Sandbox Code Playgroud)

但我得到:

Could not evaluate: Could not retrieve information from source(s) ...
Run Code Online (Sandbox Code Playgroud)

该文件位于:

config/puppet/modules/site/files/crontab
Run Code Online (Sandbox Code Playgroud)

(puppet被称为via vagrant provision并且Vagrantfile指定module_path ='config/puppet/modules',并且显然可以,因为puppet从那里加载带有导入的模块.)

我也尝试过:

source => 'puppet:///site/crontab'
source => 'site/crontab'
source => 'config/puppet/modules/site/files/crontab'
source => '/modules/site/crontab'
Run Code Online (Sandbox Code Playgroud)

无济于事.我发现网上没有什么亮点,看起来很简单.感谢您的帮助.

ruby-on-rails manifest puppet vagrant

17
推荐指数
3
解决办法
3万
查看次数

我如何在rails rspec中测试cookie到期

在rspec中设置cookie有很多困惑 http://relishapp.com/rspec/rspec-rails/v/2-6/dir/controller-specs/file/cookies

在你的控制器中,通常你可以写

cookies['transaction_code'] = { :expires => 300.seconds.from_now, :value => c }
Run Code Online (Sandbox Code Playgroud)

但在rspec我只能写

request.cookies['transaction_code'] = transaction_code
Run Code Online (Sandbox Code Playgroud)

如果我说

request.cookies['transaction_code'] = { :expires => 300.seconds.from_now, :value => c }
Run Code Online (Sandbox Code Playgroud)

我在我的控制器中将哈希值作为cookie ['transaction_code']的值得到.

现在我的问题是:如何在rspec控制器测试示例中设置/测试cookie到期?

更新:几秒钟的思考:我的意思是:我如何测试控制器是否按预期对过期的cookie作出反应,但事实上,如果我信任cookie实现,过期的cookie就像没有cookie一样,我应该这样做,所以毕竟也许我的问题毫无意义.如果是这种情况,我需要测试(另一个)控制器操作是否正确设置了一个到期的cookie,但是如果测试中的cookies ['transaction_code']只返回值,我该怎么做呢?

cookies rspec ruby-on-rails-3

14
推荐指数
1
解决办法
6223
查看次数

防止在rails 3.2.2上为RESTful api创建会话

如何防止会话存储在JSON/XML调用上创建会话?

我的问题是我在数据库中保存会话,并在多个api调用中被淹没.

我正在使用Rails 3.2.2和Devise进行身份验证.

session session-storage devise warden ruby-on-rails-3

12
推荐指数
1
解决办法
4231
查看次数

在capistrano任务中启动后台进程

capistrano任务

namespace :service do
  desc "start daemontools (svscan/supervise/svscanboot)"
  task :start, :roles => :app do
    sudo "svscanboot&"
  end
end
Run Code Online (Sandbox Code Playgroud)

现在这不起作用:svscanboot进程根本不运行.这帮助我找到sleep:https://github.com/defunkt/resque/issues/284 其他来源向我指出nohup,redirectionpty => true,所以我尝试了所有这些.

run "nohup svscanboot >/tmp/svscanboot.log 2>&1 &"   # NO
run "(svscanboot&) && sleep 1"                       # NO
run "(nohup svscanboot&) && sleep 1"                 # YES!
Run Code Online (Sandbox Code Playgroud)

现在,任何人都可以向我解释为什么我需要睡眠声明和nohup有什么区别?对于记录,如果从用户shell运行,上述所有内容同样运行良好,问题仅出现在capistrano的上下文中.

谢谢

linux shell capistrano ruby-on-rails background-process

11
推荐指数
1
解决办法
2656
查看次数

如何在同一视图中呈现两个分页和可共享的集合?

在Rails 3.2索引视图中,我呈现两个部分.

<%= render :partial => 'users/user', :locals => {:users => @happy_users} %>
<%= render :partial => 'users/user', :locals => {:users => @sad_users} %>
Run Code Online (Sandbox Code Playgroud)

在部分

<% users.each do |user| %>
  Show some fields
<% end %>
<%= will_paginate users %>
Run Code Online (Sandbox Code Playgroud)

分页不起作用.

如果我改变will_paginate采取实例变量,分页工作(但错误的集合)

<%= will_paginate @users %>
Run Code Online (Sandbox Code Playgroud)

当调用partial时,如何将locals传递给will_paginate?

(我意识到我还需要传递:param_name以使用两个集合.现在我只是想让一个实例工作.)

部分通过index.js.erb呈现

$(".ajaxable-users").html('<%= escape_javascript(render("users/user")) %>');
Run Code Online (Sandbox Code Playgroud)

控制器看起来像

def index
  @users = User.scoped.paginate(:page => params[:page], :per_page => 5)
  @happy_users = User.happy_scope.paginate(:page => params[:page], :per_page => 5)  
  @sad_users = User.happy_scope.paginate(:page => params[:page], …
Run Code Online (Sandbox Code Playgroud)

ajax ruby-on-rails will-paginate

8
推荐指数
1
解决办法
2339
查看次数

使用rake转储和加载数据库

如何指定将我的数据库转储/加载到yaml的目录?

rake db:data:dump_dir
Run Code Online (Sandbox Code Playgroud)

创建

db/2011-08-31_14:10:57_+0100/
Run Code Online (Sandbox Code Playgroud)

rake db:data:load_dir

No such file or directory - <RAILS_ROOT>/db/base
Run Code Online (Sandbox Code Playgroud)

我的问题是你是否可以指定转储到/加载的目录名称以及如何?

谢谢

rake rake-task ruby-on-rails-3

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

如何让rvm在capistrano部署中创建我的gemset?

我正在尝试使用capistrano来创建我的rvm gemset.

我使用rvm-capistrano宝石.

即使我明确尝试在安装时创建它,capistrano shell命令看起来像这样:

rvm_path=$HOME/.rvm/ $HOME/.rvm/bin/rvm-shell '1.9.3-p194@vatax' -c 'rvm use 1.9.3-p194@vatax --create'
Run Code Online (Sandbox Code Playgroud)

这显然失败了错误信息:

Gemset 'vatax' does not exist, 'rvm gemset create vatax' first, or append '--create'
Run Code Online (Sandbox Code Playgroud)

事实上,我希望gem能够为我创建gemset,但如果不是,至少我想使用非rvm shell在capistrano中创建gemset.

deployment gem capistrano ruby-on-rails rvm

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

Rails Rspec Capybara和DatabaseCleaner - 仅在特征测试中使用截断

我看到这个很酷的方法只使用数据库清理程序:使用以下方法截断capybara测试:js => true

在spec_helper.rb中:

config.before(:each) do
  DatabaseCleaner.strategy = if example.metadata[:js]
    :truncation
  else
    :transaction
  end
  DatabaseCleaner.start
end

config.after(:each) do
  DatabaseCleaner.clean
end 
Run Code Online (Sandbox Code Playgroud)

问题是,使用水豚进行的任何功能测试似乎都需要清除策略:截断.

但是,所有其他规格都适用于:交易,这要快得多.

有没有一种方法只为capybara功能测试指定策略?就像是:

DataCleaner.strategy( :truncation ) if :type => :feature
Run Code Online (Sandbox Code Playgroud)

testing ruby-on-rails capybara database-cleaner

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

在ruby Gemfile中指定宝石的可选依赖项的正确方法

宝石打算支持宝石ab作为功​​能的替代品。

在代码中,我检查defined?(A)是否可以恢复b正常。

但是作为宝石开发者,如何指定这些依赖关系?

1)我要在Gemfile中放入什么。

group :development, :test do
  gem 'a', :require => false
  gem 'b', :require => false
end
Run Code Online (Sandbox Code Playgroud)

这允许Bundle.require(:test)不自动要求a,b吗?

2)当我们退回到测试中时,如何明确要求ab分别模拟(或模拟)场景b

3)还有我怎么指定,要么a或者b是创业板的先决条件。

谢谢

ruby testing rubygems bundler gemfile

5
推荐指数
1
解决办法
1681
查看次数

哪个gem用于在rails 3中生成pdf文件

我想在rails 3.0.0中生成pdf文件.请告诉我哪个gem用于生成pdf文件.

ruby pdf-generation ruby-on-rails ruby-on-rails-3

4
推荐指数
1
解决办法
1819
查看次数

在textmate中显示项目抽屉中的隐藏文件和文件夹

默认情况下,textmate不会显示项目抽屉中的所有文件和文件夹.

如何让textmate项目抽屉显示隐藏文件,特别是所有以点开头的文件和目录?

textmate

4
推荐指数
2
解决办法
3202
查看次数

在简单转储导入设置中,mysql ERROR 1071(指定密钥太长;最大密钥长度为1000字节)

在服务器1上转储mysql数据库

$ mysql --version
mysql  Ver 14.14 Distrib 5.1.54, for debian-linux-gnu (x86_64) using readline 6.2
$ mysqldump -u root -p db > db.sql
Run Code Online (Sandbox Code Playgroud)

在服务器2上导入

$ mysql --version
mysql  Ver 14.12 Distrib 5.0.95, for unknown-linux-gnu (x86_64) using readline 5.1
$ mysql -u root -p db < db.sql
ERROR 1071 (42000) at line 807: Specified key was too long; max key length is 1000 bytes
Run Code Online (Sandbox Code Playgroud)

我知道这个错误有很多问题和答案,但它仍然让我感到困惑.

可以是版本问题吗?我怀疑没有.

如果我使用--force选项运行它,它会变得更加危险:

ERROR 1071 (42000) at line 807: Specified key was too long; max key length …
Run Code Online (Sandbox Code Playgroud)

mysql mysql-error-1071

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