カテゴリ テーブルがあり、カテゴリ名 (一意) を知っていることに基づいて、ID を取得できるようにしたいと考えています。
私が試したレールコンソールで
cat = Category.where("name = ?", "Food")
オブジェクトが正常に見つかりましたが、 cat[:id] と入力すると、「TypeError: Symbol を Integer に変換できません」というメッセージが表示されます。私は何を間違っていますか?
カテゴリ テーブルがあり、カテゴリ名 (一意) を知っていることに基づいて、ID を取得できるようにしたいと考えています。
私が試したレールコンソールで
cat = Category.where("name = ?", "Food")
オブジェクトが正常に見つかりましたが、 cat[:id] と入力すると、「TypeError: Symbol を Integer に変換できません」というメッセージが表示されます。私は何を間違っていますか?
find_by_name
代わりに使用してみてください。
cat = Category.find_by_name('Food')
puts cat.id
where
配列 (まあ、配列のような) オブジェクトを返します。したがって、代わりに を使用できますcat = Category.where('name = ?', 'Food').first
。find メソッドも同じことを行いますが、よりきれいに見えます。
cat = Category.where("name = ?", "Food").first
id = cat.id