标签: ruby

我是否应该将haml或erb或erubis用于潜在的高流量网站?

我最近一直在和Haml一起玩,真的很喜欢结果代码给我看的方式......开发人员.我也不太担心设计师能够消费或改变它......我们是一个小团队.

也就是说,开始研究一个我们认为会产生相当多流量的项目(谁没有?).我担心有一些我不知道haml的事情.有没有什么可以做的哈哈不能?随着项目的发展,haml会产生负面影响吗?还有其他事情需要考虑吗?

最后...... Haml如何与erubis进行速度比较?我看到它现在应该胜过erb和eruby ......

谢谢!

ruby haml eruby ruby-on-rails erb

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

在Ruby中创建Microsoft Word(.docx)文档

有没有一种简单的方法在Ruby应用程序中创建Word文档(.docx)?实际上,在我的情况下,它是从Linux服务器提供的Rails应用程序.

类似于Prawn的宝石,但对于DOCX而不是PDF将是伟大的!

ruby ms-word ruby-on-rails documents

47
推荐指数
5
解决办法
4万
查看次数

什么时候在Ruby中使用Struct而不是Hash更好?

Ruby Struct允许使用一组访问器生成实例:

# Create a structure named by its constant
Customer = Struct.new(:name, :address)     #=> Customer
Customer.new("Dave", "123 Main")           #=> #<Customer name="Dave", address="123 Main">
Run Code Online (Sandbox Code Playgroud)

这看起来既方便又强大,但Hash做了类似的事情:

Customer = {:name => "Dave", :address => "123 Main"}
Run Code Online (Sandbox Code Playgroud)

什么是真实世界的情况,我应该更喜欢结构(和为什么),以及选择一个在另一个上的警告或陷阱是什么?

ruby

47
推荐指数
5
解决办法
8109
查看次数

何时在Ruby on Rails中使用lambda?

什么时候应该使用lambda或proc?我看到他们被描述为匿名函数,但我很难理解这个概念.我将非常感谢您在Ruby中使用它们的任何链接或示例,尤其是在Ruby on Rails中.

ruby ruby-on-rails

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

将阵列分成m组的n组?

可能重复:
需要在Ruby中将数组拆分为指定大小的子数组

我正在寻找一个数组 - 比如说[0,5,3,8,21,7,2] - 然后生成一个数组数组,分成很多地方.如果上面的数组设置为a,那么

a.split_every(3)
Run Code Online (Sandbox Code Playgroud)

将返回[[0,5,3],[8,21,7] [2]]

这是否存在,还是我必须自己实施?

ruby arrays

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

在Rails 3中突出显示当前页面的最佳方法? - 有条件地将css类应用于链接

对于以下代码:

<%= link_to "Some Page", some_path %>
Run Code Online (Sandbox Code Playgroud)

如何current使用current_page??辅助方法应用css类?

或者,如果有其他更好的方法可用?

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

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

RSpec any_instance弃用:如何解决?

在我的Rails项目中,我正在使用任何实例的rspec-mocks,但我想避免这个弃用消息:

Using any_instance from rspec-mocks' old :should syntax without explicitly enabling the syntax is deprecated. Use the new :expect syntax or explicitly enable :should instead.

这是我的规格:

describe (".create") do
  it 'should return error when...' do
    User.any_instance.stub(:save).and_return(false)
    post :create, user: {name: "foo", surname: "bar"}, format: :json
    expect(response.status).to eq(422)
  end
end
Run Code Online (Sandbox Code Playgroud)

这是我的控制器:

def create
    @user = User.create(user_params)
    if @user.save
      render json: @user, status: :created, location: @user
    else
      render json: @user.errors, status: :unprocessable_entity
    end
end
Run Code Online (Sandbox Code Playgroud)

我想使用new:expect语法,但我找不到如何正确使用它.

我正在使用RSpec 3.0.2.

ruby testing rspec ruby-on-rails

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

在HTTparty中传递标题和查询参数

如何使用HTTparty在post方法中传递查询参数和头文件.我正在做如下但它抛出

query = {:method => "neworder", :nonce => 1404996028, :order_type => "buy", :quantity=>1,:rate=>1}
headers = {:key=> "87819747209090199871234", :sign=> "0a3888ac7f8e411ad73a0a503c55db70a291rsf34bfb9f9a47147d5200882674f717f6ede475669f3453"}

HTTParty.post("https://www.acb.com/api/v2/market/LTC_BTC/", :query => query, :headers => headers )
Run Code Online (Sandbox Code Playgroud)

但它会引发以下错误.如何使用HTTparty处理查询字符串参数和标头.

/home/user/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/net/http/header.rb:172:in `capitalize': undefined method `split' for :key:Symbol (NoMethodError)
from /home/user/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/net/http/header.rb:165:in `block in each_capitalized'
from /home/user/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/net/http/header.rb:164:in `each'
from /home/user/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/net/http/header.rb:164:in `each_capitalized'
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails httparty http-headers

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

如何优雅地symbolize_keys为'嵌套'哈希

请考虑以下代码:

  hash1 = {"one" => 1, "two" => 2, "three" => 3}
  hash2 = hash1.reduce({}){ |h, (k,v)| h.merge(k => hash1) }
  hash3 = hash2.reduce({}){ |h, (k,v)| h.merge(k => hash2) }
  hash4 = hash3.reduce({}){ |h, (k,v)| h.merge(k => hash3) }
Run Code Online (Sandbox Code Playgroud)

hash4是一个'嵌套'哈希,即带有字符串键的散列和类似的'嵌套'哈希值.

Hails in Rails的'symbolize_keys'方法让我们可以轻松地将字符串键转换为符号.但我正在寻找一种优雅的方法将所有键(主键加上hash4中所有哈希的键)转换为符号.

重点是从我的(imo)丑陋的解决方案中解脱出来:

  class Hash
    def symbolize_keys_and_hash_values
      symbolize_keys.reduce({}) do |h, (k,v)|
        new_val = v.is_a?(Hash) ? v.symbolize_keys_and_hash_values : v
        h.merge({k => new_val})
      end
    end
  end

  hash4.symbolize_keys_and_hash_values #=> desired result
Run Code Online (Sandbox Code Playgroud)

仅供参考:安装程序是Rails 3.2.17和Ruby 2.1.1

更新:

答案是 …

ruby hash ruby-on-rails dry

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

Rubocop,如何在代码块上禁用/启用警察

我想禁用特定块或方法的警察。

我知道可以使用 禁用整个项目的警察.rubocop.yml,但我只想暂时停用代码的特定部分的警察。

ruby rubocop

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