check_user_access_control我的ApplicationController中有一个before_filter,它在记录用户的角色和权限允许之前检查它.我正在尝试对它进行一些测试,但我找不到一个很好的方法.
对于简单的索引操作,我只需:
it "allows access to mod" do
login_as(Factory(:mod)) # this is a spec helper
get :index
response.code.should == "200"
end
Run Code Online (Sandbox Code Playgroud)
它工作得很好.对于需要一些参数的编辑/显示/创建和其他操作,与数据库的交互以及运行后可能的重定向,它需要太多其他东西才能被存根.
有没有办法测试在before_filters之后是否调用了特定的动作?我正在寻找类似controller.should_receive(:action_name)(不起作用)的东西来替换response.code.should == "200"线.
版本:rails 3.0.4和rspec 2.5
我尝试了另一种方法.我们在ApplicationController中调用了一个方法redirect_to_login,我现在正在检查并使用controller.should_receive(:redirect_to_login)它.
虽然它可以正确检测用户是否被允许,但它会存储方法,这意味着无论用户是否被允许,都会运行控制器操作.此外,行动取决于参数和数据库,我们不希望这样.
如果现在我使用操作方法存根controller.stub!(:action_name),则不会运行操作,但RSpec仍在查找模板.好吧,有些动作没有模板,它们只是以一个redirect_to :action => :somewhere_else或者render :text => "foobar"在此时我们不关心的结束.
在排序,我现在需要的是找到一种方法,使RSpec的不担心模板的存在.
我试图远程运行一些命令,SSH不能进入机器.我想要做的是设置一个运行一些特定命令的Sinatra应用程序,并通过HTTP流输出输出.
示例操作如下所示:
get "/log" do
`tail -f some.log`
end
Run Code Online (Sandbox Code Playgroud)
1据我所知,我需要使用Unicorn(或Mongrel),因为Thin不支持流数据2我认为我需要通过某种IO ruby对象来管道输出命令
我几乎知道怎么做(1)但不知道如何实现(2).
我安装了MongoDB并进行了如下设置:
数据库路径: /data/db
系统范围的配置文件: /usr/local/mongodb/mongod.conf
launchctl plist: /Library/LaunchDaemons/org.mongodb.mongod.plist
日志: /var/log/mongodb/output.log
二进制: /usr/local/bin/mongod
所有这些路径都有默认值吗?
我正在寻找与MongoDB 和 OS X 一致的默认值.答案的参考文献很可爱.:-)
假设我们有以下内容:
irb> Post.where(:hidden => true).to_sql
=> "SELECT `posts`.* FROM `posts` WHERE posts.hidden = 1"
Run Code Online (Sandbox Code Playgroud)
我们能以某种方式得到一个倒置的SQL查询吗?
我在寻找什么,应该是这样的:
irb> Post.where(:hidden => true).invert.to_sql
=> "SELECT `posts`.* FROM `posts` WHERE NOT (posts.hidden = 1)"
Run Code Online (Sandbox Code Playgroud) 我想从git status变量中捕获颜色输出并稍后打印.
到目前为止,我已经达到:
status=$(git status -s)
echo -e "$status"
Run Code Online (Sandbox Code Playgroud)
上面的脚本保持换行完整(thx到捕获多行输出到Bash变量)但从输出中删除颜色.
有没有办法保持变量中的颜色并回显它?
我有以下内容~/.gitconfig (这只是为了帮助您了解我正在查看的内容):
[alias]
lg = log --graph --all --pretty=format:'%Cred%h %Cgreen(%cr)%Creset - %s %C(yellow)%d %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
Run Code Online (Sandbox Code Playgroud)
当我这样做时git log,它会向我显示带有分支名称和内容的完整提交树.昨天我发起了一个git bisect,今天我看到refs/bisect/bad我的日志输出中有一个分支.
究竟是什么refs/bisect/bad分支,我该如何摆脱它?
有没有办法在capistrano中运行命令而不将其添加到Capfile?
例:
cap --eval "run 'du -sh'" --role web
Run Code Online (Sandbox Code Playgroud) 我有一个app/assets/javascripts/moufa.js.erb文件,用文件中的值填充config/moufa.yml.我想使用depend_onsprockets指令,以便每次更改yaml文件时,它都会重新编译js文件.
在我的 RoR API 服务上,我有时会看到请求在处理过程中被中断。只需 Puma 服务器停止处理请求,然后我就可以在日志中看到消息说:
[10] - Worker 0 (PID: 811) booted in 0.01s, phase: 0
Run Code Online (Sandbox Code Playgroud)
我正在尝试找出其根本原因。该 API 服务作为 pod 在 Kubernetes 中运行,在该服务之前我有 AWS ELB。
需要明确的是,K8S pod 不会重新启动,只有 Puma 的一名工作人员被“杀死”,然后立即重新启动。
我经常这样做
array.sort{|a,b| a.something <=> b.something}
Run Code Online (Sandbox Code Playgroud)
我该怎么干这个?