我最近一直在和Haml一起玩,真的很喜欢结果代码给我看的方式......开发人员.我也不太担心设计师能够消费或改变它......我们是一个小团队.
也就是说,开始研究一个我们认为会产生相当多流量的项目(谁没有?).我担心有一些我不知道haml的事情.有没有什么可以做的哈哈不能?随着项目的发展,haml会产生负面影响吗?还有其他事情需要考虑吗?
最后...... Haml如何与erubis进行速度比较?我看到它现在应该胜过erb和eruby ......
谢谢!
有没有一种简单的方法在Ruby应用程序中创建Word文档(.docx)?实际上,在我的情况下,它是从Linux服务器提供的Rails应用程序.
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)
什么是真实世界的情况,我应该更喜欢结构(和为什么),以及选择一个在另一个上的警告或陷阱是什么?
什么时候应该使用lambda或proc?我看到他们被描述为匿名函数,但我很难理解这个概念.我将非常感谢您在Ruby中使用它们的任何链接或示例,尤其是在Ruby on Rails中.
可能重复:
需要在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]]
这是否存在,还是我必须自己实施?
对于以下代码:
<%= link_to "Some Page", some_path %>
Run Code Online (Sandbox Code Playgroud)
如何current使用current_page??辅助方法应用css类?
或者,如果有其他更好的方法可用?
在我的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.
如何使用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) 请考虑以下代码:
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
更新:
答案是 …
我想禁用特定块或方法的警察。
我知道可以使用 禁用整个项目的警察.rubocop.yml,但我只想暂时停用代码的特定部分的警察。