要显示由特定类定义的所有方法,但没有在祖先类中定义的方法,我就是这样写的.
foo.methods - foo.class.superclass.methods
Run Code Online (Sandbox Code Playgroud)
有更好的方法吗?
我有两个这样的哈希值。
a = {foo: {first: 1}, bar: {first: 2}}
b = {foo: {second: 3}, bar: {second: 4}}
Run Code Online (Sandbox Code Playgroud)
我期待这样的结果a.merge b。
{foo: {first: 1, second: 3}, bar: {first: 2, second: 4}}
Run Code Online (Sandbox Code Playgroud)
但是a.merge b回报{:foo=>{:second=>3}, :bar=>{:second=>4}}。
如何合并两个散列而不丢失值?
要根据公司的市场容量计算加权平均值,我有这样的方法:
class Company < ActiveRecord::Base
def self.weighted_average(column)
market_cap_sum = sum(:market_cap)
array = []
find_each do |company|
next if company.send(column).nil?
next if company.market_cap.nil?
array << (company.market_cap.to_d/market_cap_sum) * company.send(column)
end
array.sum
end
end
Run Code Online (Sandbox Code Playgroud)
这段代码工作正常,但计算速度很慢。如果有一种方法可以通过 postgresql 函数进行计算,我想使用它。
要计算标准差,有一个这样的函数,但我找不到如何用加权平均值计算标准差。
Company.select('stddev_pop(price) as stddev')
Run Code Online (Sandbox Code Playgroud)
可以做我想做的事吗?
我可以这样stub的方法:
def test_stale_eh
obj_under_test = Something.new
refute obj_under_test.stale?
Time.stub :now, Time.at(0) do
assert obj_under_test.stale?
end
end
Run Code Online (Sandbox Code Playgroud)
来自http://www.rubydoc.info/gems/minitest/4.2.0/Object:stub
但我找不到如何使用参数存根方法的信息.例如,如果我想存根Time.parse方法,我该怎么写呢?
我想测试一个User模型属性的存在.所以我这样写.
describe "Authentications" do
it "sign up with twitter" do
visit new_user_session_path
expect { click_link "Sign up with Twitter"}.to change(User, :count).by(1)
end
describe "new user" do
let(:new_user) { User.last }
it "should have slug" do
#new_user its(:slug) { should eq("foo") }
new_user.slug should exist
end
end
end
Run Code Online (Sandbox Code Playgroud)
第一次测试通过,但第二次测试失败,出现这样的错误.
1) Authentications new user should have slug
Failure/Error: new_user.slug should exist
NoMethodError:
"new user" does not respond to either #exist? or #exists?
# ./spec/features/autentication_spec.rb:13:in `block (3 levels) in <top (required)>'
Run Code Online (Sandbox Code Playgroud)
我想我的方法是错误的.我该怎么用?
毕竟我不仅要检查它的存在,还要检查它的价值.但它也失败了.
我想在这样的特定jQuery对象中添加一个数字.
$('#count').text(Number($('#count').text()) + 1);
Run Code Online (Sandbox Code Playgroud)
它可以工作,但text()两次编写相同的选择器和方法有点多余.是否有更好的方法来使用jQuery,比如$('#count').text(Number(this) + 1);?
有一个数组a = %w(a b c d e),并希望通过索引获取第二个和最后一个值.
我可以得到价值a[1], a[-1],但我需要写a两次.有没有办法获得一个数组a.at(1, -1)?
我有一个这样的辅助方法:
module PostsHelper
def foo
"foo"
end
end
Run Code Online (Sandbox Code Playgroud)
在 rails 控制台中,我检查了函数,然后将文本更改"foo"为"bar",然后reload!是控制台,但helpers.foo仍然没有返回"bar"。
也许 Helper 对象已经像这篇文章一样在控制台中创建了,我不确定。 Rails 控制台:重新加载!不反映模型文件的变化?可能的原因是什么?
只有我想知道如何在 rails 控制台中使用 helper 方法。你能告诉我怎么做吗?
我有一个哈希数组,键是Date和值Integer.这是一个模拟它的测试代码.
hashes = 2000.times.map do |i|
[Date.new(2017) - i.days, rand(100)]
end.to_h
Run Code Online (Sandbox Code Playgroud)
我想获得特定时期的价值.起初我写了Range#include?,但它很慢.
Benchmark.measure do
hashes.select{|k,v| (Date.new(2012,3,3)..Date.new(2012,6,10)).include?(k)}
end
#<Benchmark::Tms:0x007fd16479bed0 @label="", @real=2.9242447479628026, @cstime=0.0, @cutime=0.0, @stime=0.0, @utime=2.920000000000016, @total=2.920000000000016>
Run Code Online (Sandbox Code Playgroud)
使用简单的大于或小于运算符,它变得快60倍.
Benchmark.measure do
hashes.select{|k,v| k >= Date.new(2012,3,3) && k <= Date.new(2012,6,10)}
end
#<Benchmark::Tms:0x007fd162b61670 @label="", @real=0.05436371313408017, @cstime=0.0, @cutime=0.0, @stime=0.0, @utime=0.05000000000001137, @total=0.05000000000001137>
Run Code Online (Sandbox Code Playgroud)
我以为这两个表达基本相同.
为什么会有这么大的差异?
有一个模型Company有很多DailyDatum.
我想在companies/:id/daily_data和中显示每日数据daily_data/index.但在公司的页面中我不想显示company.name专栏.
<tr>
<td><%= daily_datum.company.name %></td>
# This company.name needs to be shown when the partial is called from daily data index.
<td><%= daily_datum.column1 %></td>
<td><%= daily_datum.column2 %></td>
</tr>
Run Code Online (Sandbox Code Playgroud)
<table>
<thead>
<tr>
<th>Company Name</th>
<th>Daily Datum1</th>
<th>Daily Datum2</th>
</tr>
</thead>
<%= render @daily_data %>
</table>
Run Code Online (Sandbox Code Playgroud)
<table>
<thead>
<tr>
<!--<th>Company Name</th>-->
<th>Daily Datum1</th>
<th>Daily Datum2</th>
</tr>
</thead>
<%= render @daily_data %>
</table>
Run Code Online (Sandbox Code Playgroud)
我应该怎样处理这样的情况?我是否需要创建另一个部分HTML?
ruby ×5
arrays ×1
hash ×1
helper ×1
javascript ×1
jquery ×1
minitest ×1
partial ×1
postgresql ×1
rspec ×1