我想对父类别使用gem ancestry,我收到了这个错误:
ActiveRecord::StatementInvalid in Categories#new PG::SyntaxError:
ERROR: syntax error at or near ")" LINE 1: ...ECT "categories".* FROM "categories" WHERE (id != ) ORDER BY...
行程:
<%= form.collection_select :parent_id, Category.where("id != #{@category.id}").order(:name), :id, :name, {include_blank: true} %>
我不知道该怎么办了...这是我第一次得到这个错误
1条答案
按热度按时间hsgswve41#
问题
你用插值法
如果
@category
是新记录,则它还没有id
。这意味着它在Ruby中是nil
:当你插值
nil
时,它会转换为空字符串:这是因为错误消息中有
(id != )
解决方案
因此,最好使用另一个查询
not
最后