如何防止Rails中的重复记录

时间:2014-07-28 14:54:07

标签: ruby-on-rails ruby

这可能是一个微不足道的问题,但我找不到任何解决方案来做到这一点。

def make_thing
  @thing = Thing.new

  if @thing.save
    redirect_to some_path
  end
end

<%= link_to "Make Thing", controller: :things, action: :make_thing %>

在重定向之前,将多个请求(通过按“Make Thing”链接)发送到“make_thing”操作将多次调用save方法。所以这将创建多个记录。 我怎么才能记录单个“东西”并重定向呢?

1 个答案:

答案 0 :(得分:0)

您应该使用disable_withRails 4: Disable submit button after click)并在model-database-level检查记录的唯一性。

UPD:

你可以做这样的事情来禁用图像(苗条):

= link_to "#", data: { disable_with: "<span class='with_image' class='with_image'>Submitting...</span>" } span | Submit

和css:

.with_image { background: url('/assets/test.jpg'); }

但是最好使用jquery loader或类似的东西...... 希望我能帮助我解答。