我正在使用 https://github.com/state-machines/state_machines 来存储对象状态变化前后的工作。我希望有一个单一的方法可在给定集合的“事件”之前被调用,并且对于给定的“事件”,由“before_transition”调用的方法会略有不同。
例如,假设该方法称为 "log_state_change",则可实现如下功能:
例如,假设该方法称为 "log_state_change",则可实现如下功能:
def log_state_change
case <???>
when "successful"
Rails.logger.info "Successful"
when "failure"
Rails.logger.info "Failure"
when "starting_run"
Rails.logger.info "Starting run"
else
Rails.logger.error "Unknown"
end
我找不到适合上面的<???>
标签的方法。也许熟悉这个技术的人能够提供帮助?
'successful'
或:successful
这样作为值而不是变量吗?我猜测case state
可以完成任务,它会返回一个字符串。永远不要低估Rails.logger.info(state.titleize)
这样的东西。 - tadman