0

カテゴリ テーブルがあり、カテゴリ名 (一意) を知っていることに基づいて、ID を取得できるようにしたいと考えています。

私が試したレールコンソールで

cat = Category.where("name = ?", "Food")

オブジェクトが正常に見つかりましたが、 cat[:id] と入力すると、「TypeError: Symbol を Integer に変換できません」というメッセージが表示されます。私は何を間違っていますか?

4

2 に答える 2

0

find_by_name代わりに使用してみてください。

cat = Category.find_by_name('Food')
puts cat.id

where配列 (まあ、配列のような) オブジェクトを返します。したがって、代わりに を使用できますcat = Category.where('name = ?', 'Food').first。find メソッドも同じことを行いますが、よりきれいに見えます。

于 2012-10-05T08:25:12.680 に答える
0
cat = Category.where("name = ?", "Food").first
id = cat.id
于 2012-10-05T08:26:23.723 に答える