小编Mat*_*chu的帖子

Haml:控制文本周围的空白

在我的Rails模板中,我想使用HAML完成最终的HTML效果:

I will first <a href="http://example.com">link somewhere</a>, then render this half of the sentence if a condition is met
Run Code Online (Sandbox Code Playgroud)

接近的模板:

I will first
= link_to 'link somewhere', 'http://example.com'
- if @condition
  , then render this half of the sentence if a condition is met
Run Code Online (Sandbox Code Playgroud)

但是,您可能会注意到这会在链接和逗号之间产生一个空格.有没有实用的方法来避免这个空白?我知道有删除标签周围空格的语法,但这种语法是否只能应用于文本?我真的不喜欢额外标记的解决方案来实现这一目标.

haml ruby-on-rails

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

Rails 3 rake任务在生产中找不到模型

我的简单rake任务存储lib/tasks/items_spider.rake在开发中运行得很好.它所做的就是调用spider!Item模型.

namespace :items do
  desc "Spider the web for data, hoorah"
  task :spider => :environment do
    Item.spider!
  end
end
Run Code Online (Sandbox Code Playgroud)

我把:environment任务作为依赖,所以一切正常.但是,当我添加时RAILS_ENV=production,我在本地服务器和生产服务器上都遇到了错误:

$ rake items:spider RAILS_ENV=production --trace
(in /home/matchu/Websites/my-rails-app)
** Invoke items:spider (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute items:spider
rake aborted!
uninitialized constant Object::Item
/home/matchu/.rvm/gems/ruby-1.9.2-preview3@rails3/gems/rake-0.8.7/lib/rake.rb:2503:in `const_missing'
/home/matchu/.rvm/gems/ruby-1.9.2-preview3@rails3/gems/rspec-core-2.0.0.beta.22/lib/rspec/core/backward_compatibility.rb:20:in `const_missing'
/home/matchu/.rvm/gems/ruby-1.9.2-preview3@rails3/gems/rspec-expectations-2.0.0.beta.22/lib/rspec/expectations/backward_compatibility.rb:6:in `const_missing'
/home/matchu/Websites/openneo-impress-items/lib/tasks/items_spider.rake:4:in `block (2 levels) in <top (required)>'
/home/matchu/.rvm/gems/ruby-1.9.2-preview3@rails3/gems/rake-0.8.7/lib/rake.rb:636:in `call'
[...trace of how rake gets to my task...]
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎很奇怪.显然模型没有正确加载.我在Rails …

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

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

Ruby将两个阵列合并为一个

这是我的情况.我有2个阵列

@names = ["Tom", "Harry", "John"]

@emails = ["tom@gmail.com", "h@gmail.com", "j@gmail.com"]
Run Code Online (Sandbox Code Playgroud)

我想将这两个组合成一些调用的Array/Hash,@list这样我就可以在我的视图中迭代这样的东西:

<% @list.each do |item| %>
<%= item.name %><br>
<%= item.email %><br>
<% end %>
Run Code Online (Sandbox Code Playgroud)

我无法理解如何实现这一目标.有什么想法吗?

ruby arrays hash iterator ruby-on-rails

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

Ruby:根据所需的键将一个哈希分成两个

我希望这个问题有一个非常简单的答案.我可以想办法用无聊的,恼人的循环来做,但我希望有一个更优雅的解决方案.

如果我有以下两个变量:

hash = {:a => 1, :b => 2, :c => 3, :d => 4}
keyset = [:a, :c]
Run Code Online (Sandbox Code Playgroud)

如何以最简单的方式获得以下两个哈希值?

hash1 = {:a => 1, :c => 3}
hash2 = {:b => 3, :d => 4}
Run Code Online (Sandbox Code Playgroud)

如果示例没有明确我的目标,实质上,我想要的是#delete和之间的混合#delete_if- #delete返回已删除的值,而#delete_if允许我批量删除.我更喜欢批量删除的方法,并返回已删除的值 - 或等效的东西.

谢谢!

ruby hash

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

使"scrollLeft"/"scrollTop"更改不会触发滚动事件侦听器

目前我的程序位于一个地方,它既可以监听用户滚动某个元素,也可以自动滚动这个元素.(不是一个渐进的,漂亮的卷轴,而是瞬间跳跃.我发誓在上下文中有道理.)

如果通过设置scrollLeft或scrollTop完成滚动,有没有办法使滚动事件不触发?我的第一个想法是一个基本的开关,如:

ignoreScrollEvents = true;
element.scrollLeft = x;
ignoreScrollEvents = false;

function onScroll() {
  if(ignoreScrollEvents) return false;
}
Run Code Online (Sandbox Code Playgroud)

但由于事件不会立即触发(oops,duhh),这不是一个可行的解决方案.我可以尝试其他什么样的答案?我也在使用jQuery,如果这有帮助的话.

html javascript jquery

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

使用git处理MySQL备份是否可行?

今天我有一个非常好的想法来备份我的数据库:将转储文件放在一个git存储库中,然后在每个转储上提交,以便我有最新的副本,但可以轻松回滚到任何以前的备份.我还可以定期轻松地提取存储库的副本,以便将副本作为备份的备份保存在我自己的计算机上.这听起来很聪明.

但是,我知道聪明的解决方案有时会有根本的缺陷.我可以在git中存储mysqldump差异的哪些问题?这值得么?大多数人为了在服务器上进行多个数据库备份并在其他地方保留冗余副本而做了什么?

mysql git backup mysqldump database-backups

22
推荐指数
2
解决办法
5744
查看次数

多个多行HAML块

使用HAML的(有意)奇怪的多行格式,我想在我的模板中有以下几行:

= call_to_helper :foo1 => 'bar1', :foo2 => 'bar2', :foo3 => 'bar3', |
  :foo4 => 'bar4', :foo5 => 'bar5' |

-# and

= call_to_helper :foo1 => 'bar1', :foo2 => 'bar2', :foo3 => 'bar3', |
  :foo4 => 'bar4', :foo5 => 'bar5' |
Run Code Online (Sandbox Code Playgroud)

但是,它们不能相互碰撞,或者它们被读作单个多行块.

-# This fails:
= call_to_helper :foo1 => 'bar1', :foo2 => 'bar2', :foo3 => 'bar3', |
  :foo4 => 'bar4', :foo5 => 'bar5' |
= call_to_helper :foo1 => 'bar1', :foo2 => 'bar2', :foo3 => 'bar3', |
  :foo4 => 'bar4', :foo5 …
Run Code Online (Sandbox Code Playgroud)

haml ruby-on-rails

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

ApplicationController的副本已从模块树中删除但仍处于活动状态

每当两个并发HTTP请求转到我的Rails应用程序时,第二个总是返回以下错误:

ApplicationController的副本已从模块树中删除但仍处于活动状态!

从那里它给出了一个无益的堆栈跟踪效果"我们经历了标准服务器的东西,在ApplicationController上运行了你的第一个before_filter (我检查过;它只是先运行哪个过滤器) ",然后提供以下内容:

/home/matchu/rails/torch/vendor/rails/activesupport/lib/active_support/dependencies.rb:414:in"load_missing_constant'

/home/matchu/rails/torch/vendor/rails/activesupport/lib/active_support/dependencies.rb:96:in`const_missing'

我假设是一个通用的回应,并没有真正说太多.

谷歌似乎告诉我,开发Rails引擎的人会遇到这种情况,但我不这样做.我所做的就是将我的Rails应用程序从2.2(2.1?)升级到2.3.

导致此错误的可能原因是什么,以及如何跟踪实际发生的情况?我知道这个问题很模糊,所以其他任何信息都有帮助吗?

更重要的是:我刚刚尝试在"生产"环境中进行测试,并且错误似乎不会持续存在.那么这只会影响发展吗?我不需要太担心吗?

ruby rubygems ruby-on-rails-plugins ruby-on-rails-2

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

为什么我们不需要动态语言中的接口?

是不是因为动态类型我们不需要python中的接口概念(比如Java和C#)?

c# python java dynamic-languages

17
推荐指数
2
解决办法
2731
查看次数

哪个内存更少:Javascript数组或Javascript对象?

如果我有一个只有数字键的Javascript列表,这会占用更少的内存?

var array = [];
array[0] = 'hello';
array[5] = 'world';
array[50] = 'foobar';

var obj = {};
obj[0] = 'hello';
obj[5] = 'world';
obj[50] = 'foobar';
Run Code Online (Sandbox Code Playgroud)

我不知道Javascript引擎的内部结构,所以......

我问的原因是因为该数组在转换为字符串时会在其中间有一堆未定义的数组.那些实际上是以某种方式存储的,还是只是在字符串转换中存储?

javascript

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