如何使用Capistrano 3部署特定的git版本?
Capistrano 2.9方法不再适用
$cap -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
invalid option: -S
Run Code Online (Sandbox Code Playgroud) 我有一个form_tag(foo_path(@foo), remote: true, id: 'foo-form'表单和一个提交按钮submit_tag ("Submit", :id => "foo-submit")
我想在点击后禁用提交按钮.显然,我不能使用像是onlick="jQuery(this).prop('disabled', true);"因为它会破坏远程功能.我知道:disable_withsubmit_tag 的data属性,但它似乎对我不起作用.它确实生成了正确的表单代码,但它没有任何效果.我不确定它为什么不起作用,但可能是因为我同时使用原型(遗留原因)和jquery.虽然,我只加载ujsjquery而不是原型.但是,所有其他query_ujs功能都可以很好地工作.
还有其他方法可以禁用提交按钮吗?
我 Ruby 2 您可以执行以下操作:
my_hash = {a: {aa: 1, ab: 2, ac: 3}}
my_hash.each do |key, aa:, ab: 4, **|
puts key
puts aa
puts ab
end
Run Code Online (Sandbox Code Playgroud)
在 Ruby 3 中,这现在导致missing keywords :aa, :ab. 在 Ruby 3 中重构这样的代码的最佳方法是什么?
像下面这样的东西不起作用,因为它不支持设置默认值:
my_hash.each do |key, values|
values in {aa: aa, ab: ab}
end
Run Code Online (Sandbox Code Playgroud)
我能想到的最好方法是将现有代码放在包装器中:
lambda = ->(key, aa:, ab: 4, **) do
puts key
puts aa
puts ab
end
my_hash.each do |key, values|
lambda.call(key, **values)
end
Run Code Online (Sandbox Code Playgroud)
还有更好的选择吗?
我的模型中有一个after_update回调函数
after_update :do_something
Run Code Online (Sandbox Code Playgroud)
但是,我不希望在创建对象后调用该方法.是否可以在after_update中添加豁免?
我在User模型中使用了after_update回调.
型号User.rb
after_update :check_phone
check_phone
phone_validation if phone_changed?
end
def phone_validation
code = Array.new(8){rand(36).to_s(36)}.join
self.phone_verification_code = code
self.save
end
Run Code Online (Sandbox Code Playgroud)
然而,这导致无限循环.问题是self.save在phone_validation方法之后再次调用回调.phone_changed?显然仍然回归true.我该如何改变这种行为?
1.824999999999999.round(2)
# => 1.82
1.82499999999999999.round(2)
# => 1.83
Run Code Online (Sandbox Code Playgroud)
我不明白为什么第一种情况的结果是1.82和后者的结果1.83.我希望的结果是1.82两种情况.