2013-04-10 80 views
0

我的html頁面有5個靜態複選框。 而我想獲得選定複選框的值,當我點擊提交按鈕。在軌道上選擇紅寶石的複選框值

下面是我的代碼片段,請糾正我錯在哪裏。

因爲我在101..105

if (params[":Prod"+i] == 'selected') 
    @userid=session[:userid].to_i 
    @prodid="Prod"+i.to_i 
    @prodname=params[":ProdName"+i].to_s 
    @price=params[":Price"+i].to_i 
    @qty=params[":qty"+i].to_i 
    @Products=Product.create :UserId =>@userid, :ProductId =>@prodid, :ProductName  =>@prodname, :Price =>@price,:Quantity =>@qty 

    if @Products.save 
     redirect_to viewcart_path 
    else 
     render products_path 
    end 

    end 

注:我的複選框ID是Prod101,Prod102,Prod103,Prod104和Prod105我已經在我的HTML頁面中定義的靜態。

+1

您的參數鍵中的冒號看起來不正確。 – 2013-04-10 12:00:09

回答

0

您可以創建類似於您正在嘗試的動態哈希鍵,但語法稍微偏離。用途:

params[:"Prod#{i}"] 

params["Prod#{i}".to_sym] 

注意值不"selected",除非你已經設置自己的看法。根據您是否使用助手創建複選框以及您可能使用哪些助手/寶石,值可能會有所不同。如果你沒有覆蓋它,很可能你會得到「1」的複選框。你可能會得到未選中的框爲「0」,但默認情況下,瀏覽器不會發送任何未選中的框,所以參數可能根本就不存在。一些表單助手欺騙瀏覽器通過使用隱藏的表單字段發送「0」。另請注意,"0"在Ruby中是一個真正的值,因此您應該明確檢查"1"或您在表單中提供的任何已檢查的值。檢查日誌並查看錶單提交的內容。