2014-03-24 52 views
0

在我的ActiveAdmin項目中,我有類別和產品。每個產品都有一個類別。我能夠完美地保存產品和相關的類別。我需要添加產品及其類別的功能,但要求用戶能夠正常保存或保存並將其他產品添加到同一類別。我想我可以只是在查詢字符串中傳遞類別,但當我嘗試重寫create方法時,我得到了雙重重定向。任何想法如何做到這一點?在ActiveAdmin中傳遞實例變量或查詢字符串

這是我試過,但再次引起了重定向錯誤:

def create 
     @items_design = ItemsDesign.new(params[:items_design]) 
     create! do |format| 
     format.html { redirect_to "http://test.******.com:3000/admin/products/1873" } 
     end 
     super 
    end 

回答

0

您得到的原因Double Redirect是因爲當您創建ItemsDesign記錄成功時,您有一個重定向電話,但是without a return。因此,下一個代碼被執行,這是對super的調用,其中還有一個導致錯誤的調用redirect

您可以通過添加and return爲以下redirect_to呼叫解決Double Redirect Error

def create 
     @items_design = ItemsDesign.new(params[:items_design]) 
     create! do |format| 
     format.html { redirect_to "http://test.******.com:3000/admin/products/1873" and return } 
     end 
     super 
    end 

如果您傳遞category_id(在適當的鍵代替)作爲QUERY_STRING那麼您可以在create行動訪問它params[:category_id]和相應地使用它。

0

不知道你的用戶界面,這可能有助於瞭解您的用例。根據我的理解,您有一位用戶填寫創建產品的表單,但希望添加其他產品。

通過將category.id作爲下一個產品的參數,通過沿'new'產品表單傳遞它來持久保存類別。