嗨,希望有人可以帮助我。我现在有点卡住了。我正在尝试为跟踪系统创建一个应用程序,我目前有一个名为 sdel_hashed 的表。到目前为止,我按照在线视频设置了 digest/sha1 以部分工作。如果我在控制台中输入以下命令:
sdel = Sdel.find(1)
sdel.hashed_sdel = Sdel.hash('secret')
sdel.save
然后在浏览器中查看记录,它显示为散列而不是秘密,但如果我尝试通过新操作输入秘密这个词,它不会被散列。我认为创建操作中可能缺少某些内容,但我无法在任何地方找到答案。我将不胜感激任何帮助。我现在将包括我的控制器和模型中的内容。谢谢
model sdel
require 'digest/sha1'
class Sdel < ActiveRecord::Base
attr_accessible :hashed_sdel
def self.hash(sdel="")
Digest::SHA1.hexdigest(sdel)
end
end
controller sdels
class SdelsController < ApplicationController
def list
@sdel = Sdel.all
end
def new
@sdel = Sdel.new
end
def create
@sdel = Sdel.new(params[:sdel])
if @sdel.save
redirect_to(:action => 'list')
else
render('new')
end
end
end
迁移文件
class CreateSdels < ActiveRecord::Migration
def change
create_table :sdels do |t|
t.string "hashed_sdel"
t.timestamps
end
end
end