ruby-on-rails - 用于生成唯一链接的 Rails 插件?

标签 ruby-on-rails ruby plugins tokenize

我的应用程序中有很多地方需要生成具有唯一标记的链接(foo.com/g6Ce7sDygw 或其他)。每个链接都可能与一些 session 数据相关联,并将用户带到某个特定的 Controller /操作。

有谁知道可以执行此操作的 gem/插件吗?它很容易实现,但无需为每个应用程序从头编写它会更简洁。

最佳答案

我需要同样的想法,你需要并且我自己实现了它。我不知道有什么插件可以满足您的需求。正如您所写,实现它并不困难。这是我的解决方案:

  1. 因为我不想使用 UUID(因为它是用十六进制编码的)。我想要一些带有大小字母的随机字母数字。我将此方法添加到 String 类:

    def String.random_alphanumeric(size=20)
      s = ""
     size.times { s << (i = Kernel.rand(62); i += ((i < 10) ? 48 : ((i < 36) ? 55 : 61 ))).chr }
      s
    end
    

    有了它你可以创建唯一链接:

    link = String.random_alphanumeric
    

    作为参数,您可以设置所需字符串的大小。

  2. 另一件重要的事情是在数据库中搜索这个字符串。我使用 mysql,默认情况下它不区分大小写,因此我将搜索方法添加到我的 UniqueLink 模型中:

    def self.find_uid(search_for)
      find_by_sql("SELECT * FROM workshop_application_unique_ids where uid = '#{search_for}' COLLATE utf8_bin ORDER BY created_at DESC").first
    end
    

希望对您有所帮助!

关于ruby-on-rails - 用于生成唯一链接的 Rails 插件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2521904/

相关文章:

ruby-on-rails - 如何检查 'kind_of?' 到 'count' 或在 RSpec 'its' 功能内运行其他方法?

ruby-on-rails - 重构具有许多查询参数的 Rails Controller ?

javascript - Phonegap,Cordova - 插件问题

Java Intellij Idea 如何添加装订线图标?

plugins - 洋泾浜插件必须使用什么语言?

ruby-on-rails - 即使使用 bundle exec 也会出现 "You have already activated"消息

ruby-on-rails - 使用 Rails 创建 API

ruby-on-rails - (Rails 4.2) 如何从 View 触发脚手架生成?

ruby - 如何在 ruby​​ 中重载动态扩展方法?

ruby - capybara ::dsl::模块的未定义方法 'delegate'