当您的内容排名可以快速变化时,分页很难,当每个用户的排名不同时,分页就更难了.(让我们将无限卷轴视为一种链接不可见的分页.)有两个难题:顶部新添加的内容和重新排列的内容.
让我们忘记新添加的内容,并接受您必须刷新第1页才能看到它.我们也假装我们做的很纯粹ORDER BY position; 如果您按其他方式订购,则可能必须使用窗口功能.我们的页面每页有4行动物.他们开始:
+----+----------+-----------+
| id | position^| animal |
+----+----------+-----------+
| 1 | 1 | Alpacas |
| 2 | 2 | Bats |
| 3 | 3 | Cows |
| 4 | 4 | Dogs |
| 5 | 5 | Elephants |
| 6 | 6 | Foxes |
| 7 | 7 | Giraffes |
| 8 | 8 | Horses |
+----+----------+-----------+
Run Code Online (Sandbox Code Playgroud)
在我们获取第1页之后,在我们获取第2页之前,很多项目都会移动.DB现在是:
+----+----------+-----------+
| id | position^| animal | …Run Code Online (Sandbox Code Playgroud) 我很震惊,这个问题还没有被提出,但我发誓我到处都是.在开发模式下运行Rails 3时,是否有优于独角兽的优势,反之亦然?
我们的git repo在其历史中有一堆不再需要的大文件.我想使用Pro Git中解释的过滤器分支技术删除它们:
http://git-scm.com/book/en/v2/Git-Internals-Maintenance-and-Data-Recovery
然后我会用git push --force all它发送到我们的共享仓库,如下所述:
但.Pro Git说,自从我改变历史以来,我需要让每个人都坚持下去.我们只是谨慎使用rebase,通常只是作为合并的替代方式.我可以让每个人重新克隆,但这是最后的手段; 几个开发者都有当地的分支机构,他们希望保留这些变化.
那么:在我们的本地存储库中,每个人都需要做什么才能重新定义到新更改的共享仓库?每个跟踪分支我们必须做一次吗?我们的回购被称为原产地,而主要的分支是主要的,如果你想逐步提供(如果你愿意,我会喜欢它).
我从2000年左右没有碰过它就重新学习了C. 从那以后我一直在Ruby工作,我发现了一个我从未知道的编程习语.
过去十年中出现了哪些重要的C技巧,书籍,成语等,如果有的话?我知道C99和C11标准,但我应该在哪里看?或者,即使OOP和FP成为常态,C风格仍保持不变?
使用Rails 3,Ruby 1.9和Test :: Unit,在功能测试中调用调试器的正确方法是什么?我尝试添加"调试器",然后运行rake:test:functionals:
class AdminControllerTest < ActionController::TestCase
test "should get index" do
debugger
get :index
assert_redirected_to welcome_url
end
end
Run Code Online (Sandbox Code Playgroud)
但Ruby似乎忽略了对调试器的调用(测试继续进行并正常运行).如果我尝试直接运行测试:
ruby -r debug test/functional/admin_controller_test.rb
Run Code Online (Sandbox Code Playgroud)
然后Ruby找不到test_helper.rb.如果按照以下答案,我运行:
ruby -I "lib:test" test/functional/admin_controller_test.rb
Run Code Online (Sandbox Code Playgroud)
然后它找到test_helper但是再次运行测试完成而不调用调试器.我的Gemfile确实有:
gem 'ruby-debug19', :require => 'ruby-debug', :group => :development
Run Code Online (Sandbox Code Playgroud) 我想git log -p some/file.rb在我的Mac上使用漂亮的图形版本.Tower 1.2拥有一个新的文件历史记录视图,但它只显示了两个与SHA1进行比较的下拉列表; 它比MediaWiki"比较版本"历史记录稍微有用(它甚至不显示提交消息).
我在GitNub或Gitti中找不到任何可以做到这一点的东西.GitX和GitHub一样,但它让我希望我可以向上和向下滚动来查看差异而不必单击每个提交.有更好的工具吗?
我们在sourcerepo.com上有一个裸git存储库.有时,在推动时,我们得到"错误:未能推送一些参考",但推动成功,如果有什么遗漏,则不明显是什么.这不是常见的问题,你必须在你可以推动之前拉动; 看到:
2t2% git pull
remote: Counting objects: 57, done.
remote: Compressing objects: 100% (30/30), done.
remote: Total 30 (delta 25), reused 0 (delta 0)
Unpacking objects: 100% (30/30), done.
From tiptap.sourcerepo.com:tiptap/2t2
cb6c0e5..1dfea54 master -> origin/master
Merge made by recursive.
app/stylesheets/facebox.scss | 11 +++
app/stylesheets/screen.scss | 28 ++++++--
app/views/answers/tip_detail.html.erb | 2 +
app/views/shared/_tip_box.html.erb | 26 ++++---
app/views/tip/tip_answer.js.erb | 37 ++++++++++-
config/application.rb | 2 +-
public/javascripts/application.js | 1 -
public/javascripts/tip_animation.js | 116 +++++++++++++++++++++++++++++++++
public/stylesheets/facebox.css | 11 +++
9 files changed, 212 …Run Code Online (Sandbox Code Playgroud) 在Rails中,特定于页面的Javascript的常见习惯是:
(布局)
<head>
<% yield :javascript %>
</head>
Run Code Online (Sandbox Code Playgroud)
(视图)
<% content_for :javascript do %>
<script type="text/javascript">
$().whatever;
</script>
<% end %>
Run Code Online (Sandbox Code Playgroud)
我讨厌重复脚本标签.以下是一个坏主意有什么理由吗?
(布局)
<head>
<script type="text/javascript">
<% yield :javascript %>
</script>
</head>
Run Code Online (Sandbox Code Playgroud)
(视图)
<% content_for :javascript do %>
$().whatever;
<% end %>
Run Code Online (Sandbox Code Playgroud) git ×3
c ×1
database ×1
debugging ×1
dry ×1
git-push ×1
idioms ×1
javascript ×1
layout ×1
macos ×1
pagination ×1
thin ×1
unicorn ×1
unit-testing ×1