我目前正在开发一个Rails应用程序,它大量使用了一些javascript库,包括jquery,backbone.js和d3.js. 对于jquery,有jquery-rails gem,对于骨干,我们有backbone-rails.但d3.js不存在这样的情况.
我将d3.js中的javascript复制到了我的存储库,这对我来说感觉有点不干净,因为当d3更新时,我必须再次复制它(我必须注意到,d3已经更新了!).我考虑过git子模块,但每次检查存储库时我都必须手动拉它们.可能有办法让bundler检查出d3存储库的特定版本吗?
你如何处理在rails中更新第三方JavaScript库?有首选方式吗?
我遇到了一些看似不寻常的事情,我想知道是否有人可以解释原因.
1.8.7 :001 > some_str = "Hello World"
=> "Hello World"
1.8.7 :002 > some_str.try(:match, /^(\w*)/)
=> #<MatchData "Hello" 1:"Hello">
1.8.7 :003 > $1
=> nil
1.8.7 :004 > some_str.match(/^(\w*)/)
=> #<MatchData "Hello" 1:"Hello">
1.8.7 :005 > $1
=> "Hello"
Run Code Online (Sandbox Code Playgroud)
我不确定为什么全局变量$1没有第一次被设置,而是设置为第二次.任何见解?
鉴于我有以下迁移:
Sequel.migration do
up do
alter_table :users do
add_column :is_admin, :default => false
end
# Sequel runs a DESCRIBE table statement, when the model is loaded.
# At this point, it does not know that users have a is_admin flag.
# So it fails.
@user = User.find(:email => "admin@fancy-startup.example")
@user.is_admin = true
@user.save!
end
end
Run Code Online (Sandbox Code Playgroud)
然后续集不会自动重新加载表结构(请参阅注释内联).
我正在使用这个丑陋的黑客来解决它:
# deep magic begins here. If you remove a single line, it will
# break the migration.
User.db.schema("users", :reload => true)
User.instance_variable_set(:@db_schema, nil) …Run Code Online (Sandbox Code Playgroud) 我有一个CSS文件,一切都是稍微有点大,所以我想替换的每一个发生$size px的$size*0.75 px(例如100px对75px等).
我怎么用vim做到这一点?它甚至可能吗?
请帮我设置这个列表的样式,我需要为每个列表项设置不同的背景图像,但是类是相同的.
<ul>
<li class="sameforall">menu 1</li>
<li class="sameforall">menu 2</li>
<li class="sameforall">menu 3</li>
<li class="sameforall">menu 4</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我知道这一个,但它只适用于拳头项目:(
ul:first-child li{
/*my css*/
}
Run Code Online (Sandbox Code Playgroud) 我的应用程序结构如下:有一个侧边栏包含许多项目,由一个生成SidebarView.在SidebarView一所调用ItemView侧边栏中的每个项目:
render: ->
view = new ItemView({model: the_item})
$(@el).append(view.render().el)
Run Code Online (Sandbox Code Playgroud)
然后有一个ShowView显示主div中的项目.还有一个按钮,用于删除项目.
events:
"click #destroy-button" : "destroy"
destroy: () ->
@model.destroy()
this.remove()
return false
Run Code Online (Sandbox Code Playgroud)
它ShowView从DOM树中删除并向服务器发送DELETE请求.但是什么是ItemView从侧边栏中删除的最佳方法?添加ID <div class="item" data-index="123"></div>,然后通过数据索引删除项目?我见过有人jQuery.data用来绑定数据到DOM树.但这两种解决方案看起来都有点臭.有一种优雅的方式来实现这一目标吗?
我正在运行一些C代码,在Linux上编译为32位x86.而我正试图访问一些内存.显然我可以写入.bss和.data堆栈.前段时间,.ctors和.dtors段曾经是可写的,但似乎它们已经消失了.
如果没有反复试验,我怎样才能找到内存中哪些部分被映射?如何找出哪些地址映射到可写内存以及哪些地址是可执行的?
我错过了什么或者这是红宝石中的错误吗?
a = %w(foo bar baz)
a.include? "foo" # => true
a.size == 3 # => true
a.include? "foo" && a.size == 3 # => false
Run Code Online (Sandbox Code Playgroud) 我的rspec测试套件很慢.运行所有测试大约需要五年时间.在它运行时,我只看到测试失败了.
.......................................................................
.......FFFFFFFFFFFFFFF....F..........FFFFFFFFF.........................
................FFFFFFFFFFFFFFF.....................FF.................
..........................FFF..........................................
.............FFFFFFFFFFFFFFFFFFFFFF....................................
................................................................FFFF...
.......FFFFFFFFF..........................
Run Code Online (Sandbox Code Playgroud)
然后,在盯着这几年后,我终于得到了一个错误列表.
Failures:
172481) Foobar should barfoo the barbaz while quux is set to narf
Failure/Error: before { click_link "Enable narf" }
ArgumentError:
wrong number of arguments (0 for 1)
# ./app/helpers/foobar_helper.rb:22:in `gobble'
# ./app/controllers/barbaz_controller.rb:18:in `omgwtf'
# (eval):2:in `click_link'
# ./spec/requests/metasyntactic_spec.rb:43:in `block (5 levels) in <top (required)>'
Run Code Online (Sandbox Code Playgroud)
有没有办法告诉rspec它应该直接显示错误 - 运行测试套件?
在我看来,为了我的目的,factory_girl完全糟透了.一些限制包括:
如果我包含debugger语句,则将它们视为模型属性.我没有调用调试器,只是遇到了奇怪的错误.
FactoryGirl.define do
factory :admin do
name do
debugger # <-- Does not work.
Forgery(:name).full_name
end
email { Forgery(:email).address }
debugger # <-- Does not work either.
password "secret"
end
end
Run Code Online (Sandbox Code Playgroud)
我是太愚蠢还是没有优雅的方式来向用户添加两个帖子?
FactoryGirl.define do
factory :post do
title "Foobar"
content "Some content"
end
factory :user do
name { Forgery(:name).full_name }
email { Forgery(:email).address }
# This does not work, if the Post model requires Post#user to be set.
posts [FactoryGirl.create(:post), FactoryGirl.create(:post)]
end
end …Run Code Online (Sandbox Code Playgroud) ruby ×3
backbone.js ×1
bundler ×1
c ×1
coffeescript ×1
css ×1
elf ×1
factory-bot ×1
git ×1
javascript ×1
linux ×1
regex ×1
rspec ×1
sequel ×1
vim ×1