小编dax*_*dax的帖子

在Ruby中使用Range填充数组的正确方法

我正在编写一本书,其中给出了使用"to_a"方法将Ranges转换为等效数组的示例

当我在irb中运行代码时,我收到以下警告

 warning: default `to_a' will be obsolete
Run Code Online (Sandbox Code Playgroud)

使用to_a的正确替代方法是什么?

有没有其他方法用Range填充数组?

ruby syntax

189
推荐指数
6
解决办法
12万
查看次数

安装路边时发生错误(0.8.5)

在捆绑旧项目时,出现了这个错误:

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

    /home/dd/.rvm/rubies/ruby-2.0.0-p247/bin/ruby extconf.rb 
checking for curl-config... no
checking for main() in -lcurl... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/home/dd/.rvm/rubies/ruby-2.0.0-p247/bin/ruby
    --with-curl-dir
    --without-curl-dir
    --with-curl-include
    --without-curl-include=${curl-dir}/include
    --with-curl-lib
    --without-curl-lib=${curl-dir}/
    --with-curllib
    --without-curllib
extconf.rb:18:in `<main>':   Can't find libcurl or …
Run Code Online (Sandbox Code Playgroud)

ruby linux curb bundler

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

在jQuery中模拟Hover

目前,我有一些jQuery/Javascript代码,当用户将鼠标悬停在某些元素上时切换css类'ui-state-hovered',我想在konacha中编写测试来测试这段代码.

如何在jQuery的帮助下在Javascript中编写此函数?

如果用户将鼠标悬停在元素$('.someClass li:first')上,则返回true,类'ui-state-hovered'存在.否则返回false.

我如何模拟将鼠标悬停在该元素上的用户?

javascript jquery konacha

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

使用#update_all更新时间戳

当我有要更新其属性的ID列表时,updated_at数据库中的字段似乎没有变化,这就是我的意思:

ids = [2,4,51,124,33]
MyObj.where(:id => ids).update_all(:closed => true)
Run Code Online (Sandbox Code Playgroud)

执行此更新后,updated_at字段不会更改.但是,当我进入rails控制台rails c并执行此操作时:

obj = MyObj.find(2)
obj.closed = false;
obj.save!
Run Code Online (Sandbox Code Playgroud)

在此语句后,updated_at字段更改值.为什么是这样?我updated_at在我的应用程序中依赖这个字段,因为我正在收听更新并在发生这种情况时整个应用程序流程?

编辑

我刚从dax答案中发现:

Timestamps

Note that ActiveRecord will not update the timestamp fields (updated_at/updated_on) when using update_all().
Run Code Online (Sandbox Code Playgroud)

我不想一次更新一条记录,有没有办法解决这个问题?不求助于sql级别?

ruby ruby-on-rails ruby-on-rails-3

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

在Rails中测试JavaScript视图

在Rails中测试JavaScript视图的最佳方法是什么(测试页面是否适用于JavaScript?)

所以假设我有一个名为的页面/users/new,其中包含一个可以执行某些操作的表单.我想拥有它以便我提交表单,JavaScript测试工具会让我知道该页面是否中断.做这个的最好方式是什么?

我遇到了三个测试选项:

  1. Konacha(迄今为止JS BDD的最佳工具)http://www.solitr.com/blog/2012/04/konacha-tutorial-javascript-testing-with-rails/

  2. JasmineRice(Jasmine + Rails + Guard)https://github.com/bradphelan/jasminerice/

  3. Capybara Webkit.https://github.com/thoughtbot/capybara-webkit

前两个基本上用于BDD和隔离测试.最后一个更适用于我正在寻找的内容,但我不想为JavaScript BDD和集成测试提供单独的测试设置.

有没有人有更好的解决方案?

javascript bdd ruby-on-rails konacha

12
推荐指数
2
解决办法
2696
查看次数

rails 4中关于匹配关键字的路由问题在rails 3中工作

在rails 3匹配关键字正在工作但在rails 4匹配关键字不适用于路由

如何在rails 4中定义这些路由

此代码段正在rails 3中运行

match 'admin', :to => 'access#menu'

match 'show/:id', :to => 'public#show'

match ':controller(/:action(/:id(.:format)))'
Run Code Online (Sandbox Code Playgroud)

我需要轨道4的通用公式,如轨道3

 match ':controller(/:action(/:id(.:format)))'
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails ruby-on-rails-3 ruby-on-rails-4

9
推荐指数
2
解决办法
6188
查看次数

Named_scope中的rails唯一记录?

是否可以named_scope为某列提供唯一的返回记录?

例如

named_scope :unique_styles, :order =>"title desc", :limit => 3
Run Code Online (Sandbox Code Playgroud)

这会给我三种风格,但如果我想确定标题不同怎么办?在这种情况下,可能有三个具有相同样式的记录,我希望这个named_scope只给出标题的唯一值.

所以["style 1", "style 1", "style 1"]不可能,它会强迫自己给予["style 1", "some style 2", "maybe another 3"]

  • 我想group可能会这样做,而我现在正在使用它.如果有人有任何评论,不管这是不是很好.

activerecord named-scope ruby-on-rails

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

使用Atom Editor编写提交消息

git config --global core.editor "atom --wait"
Run Code Online (Sandbox Code Playgroud)

我这样做是为了让atom作为编辑器,当我不添加提交消息时,git确实打开了atom.我的问题是我不知道接下来该做什么?我尝试在第一行写一条消息,保存,然后关闭,但它根本没有提交.

git commit atom-editor

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

Gem:Module的未定义方法`path_separator'

我通过jenkins在passenger/nginx中运行ruby和rails应用程序.Jenkins成功构建应用程序.但该网站显示以下乘客错误.

Ruby (Rack) application could not be started.
Error message:
    undefined method `path_separator' for Gem:Module
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails nginx jenkins

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

可以将参数传递给CSS类吗?

我有这样的div:

<div class="center small-top-margin">
  <%= rails code %>
</div>
Run Code Online (Sandbox Code Playgroud)

其中"小额保证金"如下:

.small-top-margin {
    margin-top: 2em;
}
Run Code Online (Sandbox Code Playgroud)

有没有办法将参数传递给css类,以便

class="top-margin(2)#=> margin-top: 2em;
class="top-margin(5)#=> margin-top: 5em; 等..

甚至更好

class="margin(top, 2) #=> margin-top: 2em;

我已经包含了Rails标签,以防有一种方法可以通过rails实现这一点,尽管纯粹的css/sass解决方案会更好.

html css ruby-on-rails sass ruby-on-rails-4

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