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