0

次のようなモデルからID番号を保存しようとしています:

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

ターミナルでは正しく返されますが、データベースに保存すると、次のように値が保存されます。#<ActiveRecord::Relation:0x007f884b48c788>

そして、端末から印刷するとnilが返されます。

なんで?実際の値を保存するにはどうすればよいですか?

Rails3を使用しています。

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 に答える