"类别(#2203433720)预期,得到字符串(#2155957040)" Collection_select返回字符串而不是整数

时间:2014-08-01 02:18:46

标签: ruby-on-rails ruby

我有两个模特"活动"和"类别"。事件模型具有整数类型"类别" that belongs_to" Category"。类别模型具有关键:存储这些类别的值,例如1:医疗2:健康3:食品等

class Event < ActiveRecord::Base
 belongs_to :category
end

class Category < ActiveRecord::Base
  has_many :events, foreign_key: "category"
end

我的架构是:

create_table "categories", force: true do |t|
 t.string   "name"
 t.datetime "created_at"
 t.datetime "updated_at"
end

create_table "events", force: true do |t|
 t.string   "name"
 t.integer  "category"
 t.datetime "created_at"
 t.datetime "updated_at"
end

我正在使用简单的表单,也许这是我出错的地方,但我正在返回正确的值,但只是作为一个字符串。例如,如果我从下拉菜单中选择医疗,那么将返回正确的&#34; 1&#34;但只是一个字符串,而不是所需的整数。

/视图/事件

<%= f.input :category, as: :select, collection: Category.all, include_blank: "Select a category..." %>

我的下拉列表正确显示并返回正确的值但是作为字符串而不是整数。有没有最好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:4)

您应该拥有f.input :category_id,这就是提交的内容,您选择的类别的ID,而不是类别本身。