小编Gar*_*eth的帖子

是否有符号数组的文字符号?

我喜欢这个字符串数组的文字表达式:

%w( i can easily create arrays of words )
Run Code Online (Sandbox Code Playgroud)

我想知道是否有一个文字来获得一个符号数组.我知道我能做到

%w( it is less elegant to create arrays of symbols ).map( &:to_sym )
Run Code Online (Sandbox Code Playgroud)

但是使用文字就好了.

ruby arrays symbols syntactic-sugar

167
推荐指数
2
解决办法
4万
查看次数

覆盖Rails default_scope

如果我有一个带默认范围的ActiveRecord :: Base模型:

class Foo < ActiveRecord::Base

  default_scope :conditions => ["bar = ?",bar]

end
Run Code Online (Sandbox Code Playgroud)

有没有办法Foo.find 使用这些default_scope条件?换句话说,您可以覆盖默认范围吗?

我原以为在名称中使用'default'会表明它是可以覆盖的,否则会被称为类似的global_scope,对吧?

ruby-on-rails

150
推荐指数
8
解决办法
8万
查看次数

折叠git存储库的历史记录

我们有一个有着悠久历史的git项目.

具体来说,在项目的早期,项目中有相当多的二进制资源文件,这些文件现在已被删除,因为它们实际上是外部资源.

但是,由于先前提交了这些文件,我们的存储库大小> 200MB(总结账时间约为20MB).

我们想要做的是"折叠"历史记录,以便存储库看起来是从以后的版本创建的.例如

1-----2-----3-----4-----+---+---+
                   \       /
                    +-----+---+---+
Run Code Online (Sandbox Code Playgroud)
  1. 存储库已创建
  2. 添加了大量二进制文件
  3. 删除了大量的二进制文件
  4. 存储库的新目标"开始"

因此,我们希望在某一点之前丢失项目历史.此时只有一个分支,因此尝试处理多个起点等没有复杂性.但是我们不希望丢失所有历史记录并使用当前版本启动新的存储库.

这是可能的,还是我们注定要永远拥有一个膨胀的存储库?

git version-control

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

Rails中是否有HTML安全截断方法?

我在Rails中有一串HTML.我想在一定数量的字符之后截断字符串,不包括HTML标记.此外,如果拆分恰好落在开始和结束标签的中间,我想关闭打开的标签.例如;

html = "123<a href='#'>456</a>7890"
truncate_markup(html, :length => 5) --> "123<a href='#'>45</a>"
Run Code Online (Sandbox Code Playgroud)

html ruby string ruby-on-rails

42
推荐指数
4
解决办法
2万
查看次数

UUID名称空间来自哪里?

UUID规范定义了它描述为"潜在的有趣" 4名预定义的命名空间-除其他事项外的意思,"如果其他人在这个命名空间,你可以验证它们已经产生的UUID":

  • 6ba7b810-9dad-11d1-80b4-00c04fd430c8 对于DNS
  • 6ba7b811-9dad-11d1-80b4-00c04fd430c8 用于URL
  • 6ba7b812-9dad-11d1-80b4-00c04fd430c8 对于ISO OID
  • 6ba7b814-9dad-11d1-80b4-00c04fd430c8 对于X.500 DN

这些来自哪里?

特别;

  • 如果我正在生成自己的命名空间UUID,我是否需要特别避免任何事情?
  • 我知道UUID空间有多大,但这对碰撞有什么影响吗?
  • 为什么他们选择第4个八位字节来增加作为一种UUID'版本号'?
  • 我的问题是否意味着我遗漏了一些关于UUID的基本信息?

language-agnostic standards uuid

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

警告:Nokogiri是针对LibXML版本2.7.7构建的,但动态加载了2.6.16

当我启动Rails时,我无法理解为什么我从Nokogiri那里得到这个错误.从我知道的一点点来看,似乎有些东西导致加载旧版本的libxml2,Nokogiri最终会使用它,而不是它编译的版本.

如果没有警告(并使用正确的libxml2),我需要做什么才能使其正常工作?

我在OS X 10.5.8的Macbook上运行它:

$ rake db:create
(in /Users/gareth/Sites/Rails3/ngtest)
WARNING: Nokogiri was built against LibXML version 2.7.7, but has dynamically loaded 2.6.16
HI.  You're using libxml2 version 2.6.16 which is over 4 years old and has
plenty of bugs.  We suggest that for maximum HTML/XML parsing pleasure, you
upgrade your version of libxml2 and re-install nokogiri.  If you like using
libxml2 version 2.6.16, but don't like this warning, please define the constant
I_KNOW_I_AM_USING_AN_OLD_AND_BUGGY_VERSION_OF_LIBXML2 before requring nokogiri.

ngtest_test already exists …
Run Code Online (Sandbox Code Playgroud)

compilation ruby-on-rails rvm

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

XPath - 按属性命名空间查找元素

我正在尝试使用XPath来查找在给定命名空间中具有元素的所有元素.

例如,在下面的文档中,我想找到foo:bar和doodah元素

<?xml version="1.0" encoding="UTF-8"?>
<root xmlns:foo="http://foo.example.com">
  <foo:bar quux="value">Content</foo:bar>
  <widget>Content</widget>
  <doodah foo:quux="value">Content</doodah>
</root>
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用以下XPath表达式来加载给定命名空间中的所有属性

"//@*[namespace-uri()='http://foo.example.com']"
Run Code Online (Sandbox Code Playgroud)

然而:

  • 这不会给我元素,只有属性和
  • 其中elements包含来自该命名空间的多个属性,此XPath将返回每个属性而不是每个元素的结果

是否有可能获得我想要的东西,或者我只需要收集属性并计算它们对应的唯一元素集?

编辑:Dimitre Novatchev给了我以下答案.我没有意识到你可以在这样的谓词中嵌套谓词:

"//*[@*[namespace-uri()='http://foo.example.com']]"
Run Code Online (Sandbox Code Playgroud)

具体来说,这表示"任何具有任何属性的元素都具有namespace-uri ='...'"

xml xpath namespaces

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

Rails AJAX:我的部分需要一个FormBuilder实例

所以我在我的Rails应用程序中有一个表单,它使用自定义FormBuilder为我提供一些自定义字段标记

<% form_for :staff_member, @staff_member, :builder => MyFormBuilder do |f| %>
[...]
    <%= render :partial => "staff_members/forms/personal_details", :locals => {:f => f, :skill_groups => @skill_groups, :staff_member => @staff_member} %>  
[...]
<% end %>
Run Code Online (Sandbox Code Playgroud)

现在,这部分是在一个由AJAX回调替换的形式的区域中.我最终在控制器中响应AJAX请求做的是:

render :partial => "staff_members/forms/personal_details", :locals => {:skill_groups => @skill_groups, :staff_member => @staff_member}
Run Code Online (Sandbox Code Playgroud)

但是,如果我这样做,那么表单就会中断,因为我在form_for中使用的FormBuilder对象不再可用.有没有办法让我在用于AJAX回调的部分内部使用我的自定义FormBuilder对象?

ajax ruby-on-rails partial formbuilder

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

Phonegap localStorage返回字符串"[object Object]"而不是对象

我试图在Phonegap中使用localStorage对象,但getItem只接收一个字符串,而不是获取一个对象"[object Object]":

var storage = window.localStorage;
storage.setItem('test',{'name':'mark','greeting':'Hello'});
console.log(storage.getItem('test'));
Run Code Online (Sandbox Code Playgroud)

在谷歌C​​hrome的控制台中,它说:

[object Object]

"console.log(storage)"的输出如下:

Storage
...
test: "[object Object]"

如果我尝试访问对象的属性,它只是说"undefined":

storage.getItem('test').name

任何想法如何让这个工作?

javascript html5 object local-storage cordova

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

在一次处理大量数据时避免在窗口中使用"(无响应)"标签

我偶尔需要从网络上的一个软件包处理大量数据,这需要足够长的时间,当用户尝试与应用程序窗口交互时,将"(无响应)"字符串添加到窗口标题中.我知道这是因为处理是在一个处理消息的调用中完成的(在堆栈的某个方向上),因此阻止了消息泵.我也知道解决这个问题的理想方法是在一个单独的线程中异步处理数据,以便泵可以继续运行,但这是一个大型桌面应用程序,从顶部到脚趾单线程,并安全地关闭此处理在我们的时间框架内是不可行的.

所以考虑到这一点,是否有任何机会我至少可以通过告诉Windows我的应用程序即将开始繁忙之前至少避免"无响应"的名字对象(大多数用户读作"已经崩溃")工作?我相信在回应关闭请求时会有这样的问题,人们可以继续要求窗口有更多时间来避免它宣称你没有"及时关闭"

我应该添加这是一个C++ MFC应用程序.

c++ windows mfc

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