2014-09-05 18 views
0

我有兩個模型,餐廳和優惠。一家餐廳有很多優惠和優惠屬於餐館。使用另一個字段的一對多關係,但ID不包含數據庫的不良設計

將不會登錄編輯餐廳,只有管理員(我)才能夠。

目前兩款車型之間的關鍵是:restaurant_id。問題是,當我爲餐館添加新的交易時,我必須手動輸入:restaurant_id。由於顯而易見的原因,這不會擴展。

我曾想過讓主鍵:restaurant_name,但決定這是一個糟糕的設計。

有關如何爲餐廳添加優惠而不必手動輸入:restaurant_id的任何想法?

+0

而不是文本字段,爲什麼不使用名稱和ID填充下拉列表? – 2014-09-05 22:15:23

+0

我曾考慮過這個問題,但是如果我有200多家餐館似乎不是一個可擴展的解決方案。 – Seal 2014-09-05 22:19:08

+0

我建議如果餐廳有位置,您可以使用restaurant_name和restaurant_location作爲主鍵。 – 2014-09-05 22:30:41

回答

1

將餐廳ID作爲參數傳遞給表單。在僅供管理員看到的餐廳頁面上放置一個鏈接:

link_to "Add deal", new_deal_path(restaurant_id: @restaurant.id) 

餐廳ID傳入「新」請求。趕上你的交易控制器:

def new 
    @deal = Deal.new 
    @deal.restaurant_id = params[:restaurant_id] 
end 

當新的交易形式出現時,餐館ID字段將預先填充。

相關問題