0

我试图从这样的模型中保存一个 ID 号:

x_value = Info.where("info_id='#{@infodata[:educationInfoRef]}'").select(:id)

在终端中它返回正确,但是当我将其保存到数据库时,它会保存如下值:#<ActiveRecord::Relation:0x007f884b48c788>

当我从终端打印它时,它返回 nil。

为什么?如何保存实际值?

我正在使用导轨 3。

4

1 回答 1

0

第一件事。如果 @infodata 是使用用户输入构建的,则此代码容易发生 sql 注入。将您的代码更改为

x_value = Info.where(info_id: @infodata[:educationInfoRef]).select(:id)

我们来谈谈你的问题。你忘了打电话.first,所以它会返回一条记录。例如,试试这个。

info = Info.where(info_id: @infodata[:educationInfoRef]).first
info.id # returns the id of the record
info.info_id # returns the value of @infodata[:educationInfoRef]
于 2013-03-19T00:10:40.380 回答