我有以下代码
def destroy
@demand_site = DemandSite.find(params[:id])
@demand_site.destroy
flash[:success] = "Demand Site destroyed."
redirect_to demand_sites_path
end
要销毁我的sql表中的项目。这是我的迁移文件
def change
create_table :demand_sites do |t|
t.integer :site_id
t.float :demand_quantity
t.timestamps
end
end
当我想销毁某个项目时,会发生以下错误:
SQLite3 :: SQLException:没有这样的列:translinks.demand_site_id:SELECT" translinks"。* FROM" translinks"在哪里" translinks"。" demand_site_id" = 14
其中ID号发生变化。我可以添加新项目并更改它们,但之后不会销毁它们。当我查看SQL表时,它会向我显示正确的列和ID。我可以手动删除它们,但不能通过rails删除它们。
我该如何解决这个问题?
查看页面
<% @demand_sites.each do |demand_site| %>
<tr>
<td><%= demand_site.site.codename %></td>
<td><%= demand_site.site.name %></td>
<td><%= best_in_place demand_site, :demand_quantity, :type => :input%></td>
<td><%= link_to 'Show', demand_site %></td>
<td><%= link_to 'Update', edit_demand_site_path(demand_site) %></td>
<td><%= link_to 'Destroy', demand_site, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
答案 0 :(得分:0)
您的translink
表格必须有一列demand_site_id
。创建一个新的迁移,将此列添加到表中并运行迁移。