データベースを使用せずに、一度に 1 人のユーザーのみにアクションを制限したいという奇妙な状況がありますか?
助けてくれてありがとう。
require FileUtils
def lockable_action
if File.exists? "/tmp/lock"
# sorry, I'm locked
else
File.open("/tmp/lock","w") {|f| f.write("1")
# do your thing
FileUtils.rm "/tmp/lock"
end
endk
おそらく、クラス変数を使用できます。クラス変数は、1 つのインスタンスだけでなく、クラスのすべてのインスタンスで同じです。
def do_something
if @@locked
render text: "Sorry, somebody else working here."
else
@@locked = true
# do the stuff you need to do here
@@locked = false
end
end