小编ibl*_*lue的帖子

在rails中保持javascript库最新的最佳方法是什么?

我目前正在开发一个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库?有首选方式吗?

javascript git ruby-on-rails bundler

5
推荐指数
2
解决办法
569
查看次数

正在设置正则表达式全局变量

我遇到了一些看似不寻常的事情,我想知道是否有人可以解释原因.

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没有第一次被设置,而是设置为第二次.任何见解?

ruby regex ruby-on-rails activesupport

5
推荐指数
1
解决办法
562
查看次数

如何在续集中重新加载表模式?

鉴于我有以下迁移:

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)

ruby sequel

5
推荐指数
1
解决办法
1688
查看次数

如何与vim相乘

我有一个CSS文件,一切都是稍微有点大,所以我想替换的每一个发生$size px$size*0.75 px(例如100px75px等).

我怎么用vim做到这一点?它甚至可能吗?

vim

4
推荐指数
1
解决办法
1060
查看次数

如何单独列出项目(具有相同的类)的样式

请帮我设置这个列表的样式,我需要为每个列表项设置不同的背景图像,但是类是相同的.

<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)

css css-selectors

3
推荐指数
1
解决办法
1万
查看次数

删除模型后删除多个视图

我的应用程序结构如下:有一个侧边栏包含许多项目,由一个生成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树.但这两种解决方案看起来都有点臭.有一种优雅的方式来实现这一目标吗?

coffeescript backbone.js

3
推荐指数
1
解决办法
1415
查看次数

内存中的哪些部分是可写的?

我正在运行一些C代码,在Linux上编译为32位x86.而我正试图访问一些内存.显然我可以写入.bss.data堆栈.前段时间,.ctors和.dtors段曾经是可写的,但似乎它们已经消失了.

如果没有反复试验,我怎样才能找到内存中哪些部分被映射?如何找出哪些地址映射到可写内存以及哪些地址是可执行的?

c linux elf

3
推荐指数
1
解决办法
2702
查看次数

是真的&& true == false?

我错过了什么或者这是红宝石中的错误吗?

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)

ruby operator-precedence

3
推荐指数
1
解决办法
369
查看次数

如何更快地显示rspec错误?

我的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它应该直接显示错误 - 运行测试套件?

rspec ruby-on-rails

2
推荐指数
1
解决办法
472
查看次数

factory_girl的替代品

在我看来,为了我的目的,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-on-rails factory-bot

1
推荐指数
1
解决办法
1501
查看次数