我正在尝试将哈希monthly_multipliers
中的信息插入到迭代器中。
month_multipliers = { april: 1, may: 2, june: 3, july: 4, august: 5, september: 6, october: 7, november: 8, december: 9, january: 10, february: 11, march: 12}
months = ['april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december', 'january', 'february', 'march']
然后我每个月都要进行迭代,并且需要每月注入月度乘数,因此6月3日将是5月等。
months.each do |month|
instance_variable_set :"@#{month}_income", (monthly_new_account_income * month_multipliers[month]) + previous_years_monthly_income
end
此位不起作用
month_multipliers[month])
我尝试发送并获取实例变量,但无法正确获取格式。
答案 0 :(得分:1)
month_multipliers
在Symbol
个对象中有密钥,但months
的密钥为String
个对象。在从哈希值中检索值之前,请使用所有Symbol
或String
个对象或将键转换为正确的对象。
答案 1 :(得分:0)
这有效
var work = person.Work; \\ with this line here everything works as expected
person.Work = null;
db.SaveChanges();
答案 2 :(得分:0)
我看到你的问题,你使用带有字符串值的符号键。为简单起见,您可以直接遍历month_multiplier
month_multipliers.each_pair do |month, multiplier|
instance_variable_set :"@#{month}_income", (monthly_new_account_income * multiplier) + previous_years_monthly_income
end