0
我试图使用一个使用SecureRandom发布标识到涵洞的虚空URL,然后通过显示页面显示该涵洞。未找到记录rails 5 ActiveRecord错误
我涵洞控制器是:
我已经尝试了两种:
@culvert = Culvert.find_by_culvert_ident(params[:id])
AND
@culvert = Culvert.find_by_id(params[:culvert_ident])
在我的涵洞控制器表演动作,都产生相同的结果(截图)
private
# Use callbacks to share common setup or constraints between actions.
def set_culvert
@culvert = Culvert.find_by_culvert_ident(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def culvert_params
params.require(:culvert).permit(:culvert_ident, :latitude, :longitude, :address, :user_id)
end
这是我涵洞型号IDENT发电机和个性化网址的方法:
before_create :generate_culvert_ident
# Relationships
belongs_to :user
# Model Validations
validates_uniqueness_of :culvert_ident
# Ident Generator
def generate_culvert_ident
begin
self.culvert_ident = SecureRandom.hex(3).upcase
other_culvert = Culvert.find_by(culvert_ident: self.culvert_ident)
end while other_culvert
end
# Url Direction
def to_param
culvert_ident
end
所以我的目标是创建涵洞,自动分配一个唯一的标识符,将其保存并使用自定义标识符显示涵洞,而不是标准的1,2,3,4编号的
这个工程在我用过的另一个网络应用程序中,设置完全一样,但我在这里得到这个错误,不能找出原因。如果您需要更多信息,请让我知道!
**
编辑#1 - 控制台输出再添截图
**
该记录是否与该“id”一起存在? – Vucko
是的,当我在控制台搜索它拉取记录,并显示身份保存以及标准ID - 实际上它显示为零 - 请参阅上面的屏幕截图现在更新它 –
什么'Culvert.where('culvert_ident =?','BF83D4')。 – Vucko