无法摧毁铁轨中的物品

时间:2014-03-12 12:21:06

标签: sql ruby-on-rails

我有以下代码

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 %>

1 个答案:

答案 0 :(得分:0)

您的translink表格必须有一列demand_site_id。创建一个新的迁移,将此列添加到表中并运行迁移。