2015-11-12 35 views
0

我不知道如何放置它。有人可能已經問過這個問題了!Rails4:如何附加未列入白名單的域(強參數)

我有一個訂單表,它有product_details列。但是,當用戶提交訂單時,它只會獲取用戶的姓名和地址。我想在保存數據時手動添加產品詳細信息。

我的訂單控制器

def create 
     @neworder = Order.new(order_params) 
     if @neworder.save 
     redirect_to root_url, notice: "" 
     else 
     render "new" 
     end 
    end 

    private 
    def order_params 
     params.require(:order).permit(:name,:address) 
    end 

如果我白名單product_details場那麼我想這將是開放的「質量分配」與否?
params.require(:order).permit(:name,:address, :product_detail)

回答

0

如果你的「product_details」,正在通過表單提交,那麼你需要將其添加到允許白名單,像這樣:

def order_params 
    params.require(:order).permit(:name,:address, :product_details) 
end 

但是,我認爲「手動添加」您意味着在控制器中設置該屬性。如果是這種情況,那麼你不應該將它添加到許可證列表中,因爲它將允許對該字段進行批量分配 - 你可能不希望這樣做。

你需要的是改變你的創建操作,如下所示:

def create 
    @neworder = Order.new(order_params) 
    @neworder.product_details = "test" 
    if @neworder.save 
    redirect_to root_url, notice: "" 
    else 
    render "new" 
    end 
end 
+0

我的意思是,用戶不提交數據(產品詳細信息)。我從數據庫中手動獲取該信息,並在他們提交姓名和地址後添加它。 – Khoga

+0

更新了我的文章。 – Khoga

+0

我更新了我的答案。是否有意義? – rlarcombe

相關問題