Mat*_*usz 8 activerecord ruby-on-rails
我想在我的activerecords中使用自动生成的散列而不是自动递增的整数作为主键.这提出了两个问题:
此致,Mateusz
如果你想要这个,因为你不想在网址中显示id.你可以使用像https://github.com/peterhellberg/hashids.rb这样的宝石
它从您的数据库ID创建可逆哈希,因此哈希不需要存储在数据库中.
在模型to_param方法中使用它.
class MyModel < ActiveRecord::Base
def to_param
Hashids.new("salt").encode(id)
end
end
Run Code Online (Sandbox Code Playgroud)
并在从数据库中查找记录之前解码哈希.
def show
id = Hashids.new("salt").decode(params[:id]).try(:first)
record = MyModel.find(id)
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6321 次 |
| 最近记录: |