不确定为什么会这样?还是一个菜鸟..
我只是在保存记录之前更新Mine
表中的一个字段。所有变量都被准确地拉入。下面的行也返回了它的假设。
CreateFulfillmentService::NON_US_MARKETPLACES.include?(self.marketplace)
而self
是Mine
的一个实例。而self.marketplace
会返回正确的市场。
这是我的控制器
class Mine < ActiveRecord::Base
belongs_to :shop
validates :merchant_id, presence: true
validates :auth_token, presence: true
before_save :assign_three_speed
def assign_three_speed
if CreateFulfillmentService::NON_US_MARKETPLACES.include?(self.marketplace)
self.update(three_speed: false)
else
self.update(three_speed: true)
end
end
end
我哪里误入歧途?
答案 0 :(得分:3)
var slickOptions = {
autoplay: true,
// rest of options
},
$slick = $('.my-slick');
$slick.slick(slickOptions);
// built-in feature, for more info check the [doc](http://kenwheeler.github.io/slick/)
$slick.on('swipe', function(event, slick, direction) {
reinitSlick();
});
$('.slick-prev, .slick-next').on('click', function(){
reinitSlick();
});
var reinitSlick = function() {
$slick.slick('slickSetOption', {
'autoplay': false
}, false);
}
是一个回调。每次保存Mine实例时都会运行。
在before_save
中,您拨打assign_three_speed
,最终呼叫self.update
。该保存调用触发另一个回调周期,循环继续(直到它退出SystemStackError)。
尝试在回调中分配three_speed(而不是更新)。更改将持久保存到数据库,因为在模型保存之前分配。
save