2014-03-12 75 views
0

的項目,我有以下代碼不能破壞鐵軌

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:選擇 「translinks」 * FROM「translinks」WHERE「translinks」。「demand_site_id」= 14

其中id號改變。我可以添加新項目並對其進行更改,但不能在之後將其摧毀。當我查看SQL表格時,它會顯示正確的列和ID。我可以手動刪除它們,但不能通過導軌。

我該如何解決這個問題?

視圖頁面

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

發佈您的查看頁面,其中提到刪除操作的鏈接。 – Pavan

+0

在控制器中你有一個方法銷燬,但在視圖頁面中,它被寫爲刪除 – Pavan

+0

寫在視圖文件中的方法是'HTTP方法(動詞)'而不是控制器的動作。它被正確寫入。 – Nerve

回答

0

translink表必須有一列demand_site_id。創建一個新的遷移,將此列添加到表中並運行遷移。