小编Alb*_*ert的帖子

Rails 4 - 专门为开发环境指定路由

是否可以在Rails 4中创建只在应用程序以开发模式运行时执行的路由?

routes ruby-on-rails

26
推荐指数
1
解决办法
7957
查看次数

如何使用capistrano 3部署特定修订版

如何使用Capistrano 3部署特定的git版本?

Capistrano 2.9方法不再适用

$cap -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
invalid option: -S
Run Code Online (Sandbox Code Playgroud)

capistrano ruby-on-rails

13
推荐指数
1
解决办法
8489
查看次数

如何从当前shell卸载RVM?

如何从当前shell卸载RVM?我发现了这个,但我不确定如何使用它.它没有记录.

ruby rvm

10
推荐指数
1
解决办法
846
查看次数

Rails 4:单击后禁用提交按钮

我有一个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功能都可以很好地工作.

还有其他方法可以禁用提交按钮吗?

jquery ruby-on-rails ujs ruby-on-rails-4

10
推荐指数
3
解决办法
2万
查看次数

Ruby 3 中的哈希解构

我 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)

还有更好的选择吗?

ruby

8
推荐指数
2
解决办法
155
查看次数

Rails 4:为模型中的after_update添加免除项

我的模型中有一个after_update回调函数

after_update :do_something
Run Code Online (Sandbox Code Playgroud)

但是,我不希望在创建对象后调用该方法.是否可以在after_update中添加豁免?

activerecord ruby-on-rails ruby-on-rails-4

3
推荐指数
1
解决办法
3716
查看次数

Rails 4: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.我该如何改变这种行为?

ruby-on-rails callback

3
推荐指数
1
解决办法
2289
查看次数

浮动的奇怪结果

1.824999999999999.round(2)
# => 1.82
1.82499999999999999.round(2)
# => 1.83
Run Code Online (Sandbox Code Playgroud)

我不明白为什么第一种情况的结果是1.82和后者的结果1.83.我希望的结果是1.82两种情况.

ruby

0
推荐指数
1
解决办法
75
查看次数