我不完全确定导致这种情况的步骤,但是我最终没有我的GIT主分支.
我在使用这里的说明解决问题时遇到了麻烦:http://sitaramc.github.com/concepts/detached-head.html但是我对GIT的一般无知可能让我陷入了比起初更糟糕的困境.
$ git branch
first-cucumber-attempt
notifications
* second-cucumber-attempt
sendgrid-setup
Run Code Online (Sandbox Code Playgroud)
在某些时候,我显然开始研究一个独立的HEAD,现在我不知道如何找到我的主人(我觉得现在有点像Alice).
尝试结帐大师给出:
$ git checkout master
error: pathspec 'master' did not match any file(s) known to git.
Run Code Online (Sandbox Code Playgroud)
试图拉大师给出:
$ git pull origin master
From github.com:petenixey/kind-advice
* branch master -> FETCH_HEAD
Already up-to-date.
Run Code Online (Sandbox Code Playgroud)
分支"second_cucumber_attempt"包含我想要合并到master和master中的所有代码在github上仍然是安全的,但我无法达到它.我彻底陷入困境.
我想将列类型更改:string为:text
问题是,如果我只是这样做:
change_column :questions, :content, :text
Run Code Online (Sandbox Code Playgroud)
然后将架构重写为:
t.string "content", :limit => 255
Run Code Online (Sandbox Code Playgroud)
也就是说,当它是一个时,它需要隐含的长度 string
如何进行迁移并指定:limit不应设置为以下模式:
t.string "content"
Run Code Online (Sandbox Code Playgroud)
我已经尝试设置10,000的任意限制,但a)感觉效率低下; b)它使向下迁移尝试将:text限制设置为10,000.
我可以将哪个选项传递给change_column方法以确保它只使用默认限制?
我希望能够在查看我正在调试的脚本的同时在控制台中执行代码,但我似乎只能得到一个或另一个.有没有办法同时看到两者?

我正在尝试将Heroku上的生产数据库复制到我的登台服务器.
我的登台服务器已经超越了我的生产服务器,并且迁移创建了一个额外的表.我现在想干运行迁移以在生产数据库上添加该表,因此希望还原我的暂存数据库以便这样做.
问题是,每次我restore将临时数据库放到生产中时,表格都会粘在一起.我期待数据库被销毁和重新填充,但它似乎只是被重新填充.
heroku pgbackups:url b104 --app production
# 'http://s3.amazonaws.com/...'
heroku pgbackups:restore DATABASE 'http://s3.amazonaws.com/...' --app staging
Run Code Online (Sandbox Code Playgroud)
每次我这样做,我发现"更新"的表仍然存在.
是否pgbackups:restore真正恢复表结构或简单的数据-这是怎么回事呢?
我刚刚升级到Rails 4并发现了路由的意外行为.
我们有一个名为EmailPreviewController的控制器.这个路由是:
get "/emailpreview", controller: 'EmailPreview', action: :index
Run Code Online (Sandbox Code Playgroud)
但是在升级到Rails 4之后,在加载环境时会抛出以下错误:
'EmailPreview' is not a supported controller name. This can lead to potential routing problems. See http://guides.rubyonrails.org/routing.html#specifying-a-controller-to-use
Run Code Online (Sandbox Code Playgroud)
我查看了它建议的页面但是没有任何迹象表明使用具有CamelCase名称的控制器是不正确的.
如果我将控制器更改为小写,则没有任何问题:
# this works fine
get "/emailpreview", controller: 'emailpreview', action: :index
Run Code Online (Sandbox Code Playgroud)
这是预期的行为吗?是不是现在可以使用camelcase控制器名称,还是有其他东西在这里?
我想调试一些我的测试,看看实际发生了什么.一个简单的方法就是看着他们在我面前演出.是否有可能强制Capybara使用实际的浏览器实例在您面前明显地运行测试?
我希望能够在Heroku的我的临时应用程序上运行rspec和黄瓜.我有一个单独的生产应用程序,我将我的开发分支推送到临时和我的主分支到生产.
我已将RACK_ENV变量设置为'staging',并且还添加了staging.rb配置文件.
在本地运行rspec和黄瓜:
rspec和黄瓜都可以使用命令在本地运行
$ rspec spec
Run Code Online (Sandbox Code Playgroud)
..
$ cucumber features
Run Code Online (Sandbox Code Playgroud)
在Heroku登台应用程序上运行rspec
问题是我不能让他们在我的Heroku登台应用程序上运行.我知道在Heroku上使用rspec的正确方法是:
$ heroku rake spec --remote staging
Run Code Online (Sandbox Code Playgroud)
每当我运行此操作时,我会收到以下错误:
rake aborted!
You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.[]
/app/.bundle/gems/ruby/1.9.1/gems/activerecord-3.0.7/lib/active_record/railties/databases.rake:429:in `block (3 levels) in <top (required)>'
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:634:in `call'
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:634:in `block in execute'
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:629:in `each'
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:629:in `execute'
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:595:in `block in invoke_with_call_chain'
/usr/ruby1.9.2/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:588:in `invoke_with_call_chain'
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:605:in `block in invoke_prerequisites'
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:602:in `each'
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:602:in `invoke_prerequisites'
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:594:in …Run Code Online (Sandbox Code Playgroud) 假设您正在为Blogger编写软件.
每个用户只有在博客所有者的情况下才能创建博客文章.CanCan通常会在这种情况下定义能力检查:
user.can? :create, Post
Run Code Online (Sandbox Code Playgroud)
但是,如果用户是当前博客的所有者,则用户只能创建帖子,并且无法仅使用其类名引用当前博客.我真正需要做的是:
user.can? :create, Post, @current_blog
Run Code Online (Sandbox Code Playgroud)
我可以说,在康康的定义中
can :create, Post do |post, blog|
user == blog.owner
end
Run Code Online (Sandbox Code Playgroud)
这是可能的还是我在接近这个方面感到困惑?
我正在使用的算法需要从 JavaScript 中的浮点数中压缩尽可能多的精度。我不介意精度是否来自非常大的数字或小数点后有很多数字,我只是实际上需要尽可能多的数字。
(如果你关心为什么,它是一个拖放排名算法,在重新平衡之前必须处理大量的减半。我也知道有更好的基于字符串的算法,但数值方法适合我的目的)
MDN文档说:
JavaScript Number 类型是双精度 64 位二进制格式 IEEE 754 值,类似于 Java 或 C# 中的 double。这意味着它可以表示小数值,但它可以存储的内容有一些限制。数字仅保留小数点后 17 位左右的精度;算术需要四舍五入。
小数点后17位是不是意味着“包括小数点前后总共17个数字”
例如(添加下划线代表千位分隔符以提高可读性)
# 17 numerals: safe
111_222_333_444_555_66
# 17 numerals + decimal point: safe
111_222_333_444_555_6.6
1.11_222_333_444_555_66
# 18 numerals: unsafe
111_222_333_444_555_666
# 18 numerals + decimal point: unsafe
1.11_222_333_444_555_666
111_222_333_444_555_66.6
Run Code Online (Sandbox Code Playgroud)
我认为数字的精度决定了您可以使用的数字数量,并且这些数字中小数点的位置实际上是学术性的。
我一直在考虑MVC中的元内容,特别是页面标题和元描述(这对于指导Google在搜索结果中显示的代码段非常有用).
我不能确定这应该在哪里生活.根据(对于UGC应用程序)读者与内容的交互方式,通常会有一些逻辑.
我无法确定是否在视图层或控制器中更好地构造了此元内容.它几乎肯定不会存在于模型中,因为它特定于数据的特定视图,但是当我的第一直觉是将它放在视图中时,我觉得它可能更好地被抽象化.
我对其他人采取的方法很感兴趣.