我试图从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)
无济于事.我发现网上没有什么亮点,看起来很简单.感谢您的帮助.
在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']只返回值,我该怎么做呢?
如何防止会话存储在JSON/XML调用上创建会话?
我的问题是我在数据库中保存会话,并在多个api调用中被淹没.
我正在使用Rails 3.2.2和Devise进行身份验证.
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,redirection和pty => 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的上下文中.
谢谢
在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) 如何指定将我的数据库转储/加载到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)
我的问题是你是否可以指定转储到/加载的目录名称以及如何?
谢谢
我正在尝试使用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.
我看到这个很酷的方法只使用数据库清理程序:使用以下方法截断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) 宝石打算支持宝石a或b作为功能的替代品。
在代码中,我检查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)当我们退回到测试中时,如何明确要求a并b分别模拟(或模拟)场景b?
3)还有我怎么指定,要么a或者b是创业板的先决条件。
谢谢
我想在rails 3.0.0中生成pdf文件.请告诉我哪个gem用于生成pdf文件.
默认情况下,textmate不会显示项目抽屉中的所有文件和文件夹.
如何让textmate项目抽屉显示隐藏文件,特别是所有以点开头的文件和目录?
在服务器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)