我有一个使用Connection类的控制器(我使代码更简单,以说明问题):
class InvoicesController < ApplicationController
def connect
@flow = Flow.new(year: 2010, month: 10, day: 5)
@con = Connection.new(@flow)
@con.connect
flash.now[:error] = "#{@con.connect}"
end
end
class Connection
def initialize(obj)
@obj = obj
end
def connect
@result = [1].each do |x|
case
when (@obj.year > 1) && (@obj.day != 5)
break "result from case1: #{@obj.day}"
when (@obj.year > 1) && (@obj.day == 5)
@obj.update_attributes(day: 6)
break "result from case2 #{@obj.day}"
end
end
return "#{@result}"
end
end
@flow
对象与案例2(日期:5)匹配,但闪存显示:
result from case1: 6
当我在控制台中测试Connection类时,返回值是正确的。
也许我会错过一些基本概念,谢谢。
答案 0 :(得分:0)
您第一次拨打connect
(update_attributes(day: 6)
)时正在修改对象,因此您第二次调用它时会得到另一个案例。如果您只想调用一次,请将返回值保存在新变量中并将其发送到闪存。