我试图从这样的模型中保存一个 ID 号:
x_value = Info.where("info_id='#{@infodata[:educationInfoRef]}'").select(:id)
在终端中它返回正确,但是当我将其保存到数据库时,它会保存如下值:#<ActiveRecord::Relation:0x007f884b48c788>
当我从终端打印它时,它返回 nil。
为什么?如何保存实际值?
我正在使用导轨 3。
我试图从这样的模型中保存一个 ID 号:
x_value = Info.where("info_id='#{@infodata[:educationInfoRef]}'").select(:id)
在终端中它返回正确,但是当我将其保存到数据库时,它会保存如下值:#<ActiveRecord::Relation:0x007f884b48c788>
当我从终端打印它时,它返回 nil。
为什么?如何保存实际值?
我正在使用导轨 3。
第一件事。如果 @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]