我在生产站点中遇到此错误,这是我视图中的代码
<%= form_for [:admin, @course], :remote => true do |f| %>
<%= f.label :name %>
<%= f.text_field :name %>
<%= f.label :duration %>
<%= f.number_field :duration, class: "input-md form-control mb-20"%>
<%= f.label :program_id %>
<%= f.collection_select :program_id, Program.where('id'), :id, :name, {}, {class: "input-md form-control mb-20" } %>
<%end%>
这在我具有sql db安装程序的本地服务器中有效。
Program model
has_many :courses
有人可以引导我吗?
答案 0 :(得分:1)
Where子句未调用任何要比较的内容,因此PG不知道结果中要包括什么。 where子句的求值必须为true / false。
只需替换
<%= f.collection_select :program_id, Program.where('id'), :id, :name, {}, {class: "input-md form-control mb-20" } %>
作者
<%= f.collection_select :program_id, Program.all, :id, :name, {}, {class: "input-md form-control mb-20" } %>
如果您对数据库中的某些“程序”有疑问,请在“程序”表中添加一列作为状态并在此处进行更改
<%= f.collection_select :program_id, Program.where("status =?", true), :id, :name, {}, {class: "input-md form-control mb-20" } %>