我在Ruby on Rails应用程序中获得此错误
A
我已经阅读了堆栈溢出API,找不到适合我的答案。这是代码的特定部分:
HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
此错误背后的逻辑是,我有两个用户,即商店用户和雇员用户,他们都是用户,但雇员用户上面有一个“标记”,因此他们可以看到商店中的所有项目。商店用户没有此标志,因此此网页应显示他们的“愿望清单”项目,并且当我创建一个表来填充此项目时,出现上述错误/
此代码在Im是雇员用户时起作用,并根据需要填充我的表,但在我是商店用户时不起作用。
问题:如何在不大量修改代码的情况下解决此错误?
编辑:计划
ActiveRecord::StatementInvalid in Store#show_item
Showing /media/store_test/app/views/store/show_item.html.erb where line #24 raised:
PG::UndefinedFunction: ERROR: operator does not exist: character varying = integer
LINE 1: ...CT "show_item".* FROM "current_item" WHERE (user_id = 1)
^
答案 0 :(得分:1)
感谢Marcin Kologziej:
user_id列定义的类型错误。根据错误,它应该是整数,而不是字符串。因此,我使用以下代码创建了一个新迁移:
change_column :current_item, :user_id, :integer, using: 'user_id_id::integer'
然后执行:
rake db:migrate
现在一切正常。