Ruby on rails &引用;应为类别(#2203433720),获得字符串(#2155957040)";集合\u选择返回字符串而不是整数

Ruby on rails &引用;应为类别(#2203433720),获得字符串(#2155957040)";集合\u选择返回字符串而不是整数,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有两个模型“事件”和“类别”。事件模型具有属于“类别”的整数类型“类别”。类别模型具有存储这些类别的键:值,例如1:医疗2:健康3:食品等 class Event < ActiveRecord::Base belongs_to :category end class Category < ActiveRecord::Base has_many :events, foreign_key: "category" end 我使用的是简单的表单,可能这就是我出错的地方,但我返回的

我有两个模型“事件”和“类别”。事件模型具有属于“类别”的整数类型“类别”。类别模型具有存储这些类别的键:值,例如1:医疗2:健康3:食品等

class Event < ActiveRecord::Base
 belongs_to :category
end

class Category < ActiveRecord::Base
  has_many :events, foreign_key: "category"
end
我使用的是简单的表单,可能这就是我出错的地方,但我返回的值是正确的,但只是作为字符串。例如,如果我从下拉列表中选择medical,它将返回正确的“1”,但只是作为字符串,而不是所需的整数

/观点/事件

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


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

您应该有
f.输入:category\u id
,因为这是您正在提交的,是您选择的类别的id,而不是类别本身。

您应该有
f.输入:category\u id
,因为这是您正在提交的,是您选择的类别的id,不是类别本身。

这在我的“事件”视图中。我没有一个属性:category\u id.:category应该做和我设置的一样的事情,对吗?这很奇怪,因为我进入了我的模式,更改了Event.category=>Event.category\u id,并在MVC中更改了它,它似乎工作得很奇怪。是否有某种Rails命名约定我没有遵循?是的,一个属于关联的默认外键是
(关联名称)\u id
——这是在我的“事件”视图中。我没有一个属性:category\u id.:category应该做和我设置的一样的事情,对吗?这很奇怪,因为我进入了我的模式,更改了Event.category=>Event.category\u id,并在MVC中更改了它,它似乎工作得很奇怪。是否有某种Rails命名约定我没有遵循?是的,一个属于关联的默认外键是
(关联名称)\u id
-
<%= f.input :category, as: :select, collection: Category.all, include_blank: "Select a category..." %>