2016-07-25 66 views
0

我有一個has_many關係,我想循環每個項目鏈接到主模型(配方上的成分)的某個字段。我試圖在before_filter中這樣做,所以我可以正確解析用戶輸入到我想要的。我如何設置do循環來獲取我想要的參數如何在rails控制器參數中循環遍歷屬性

+0

請張貼一些數據,至少是控制器或型號代碼 –

+0

我不認爲你想在'before_filter'鉤子中做這件事。 –

回答

2

Rails中的請求參數可通過params散列來訪問。您可以使用迭代器遍歷哈希。

params.each do |k,v| 
    puts "#{k}: #{v}" 
end 

至於用於解析用戶的輸入,我個人不會做,在一個before_filter方法。您在下面的例子中將「1 1/2」等輸入轉換爲1.5。嘗試是這樣的:

ingredient.rb:

# amount :decimal (assuming this column exists on the ingredients table) 

def humanized_amount 
    amount.humanize! 
end  

def humanized_amount=(value) 
    amount = cast_humanized_value_to_decimal(value) 
end 

然後用humanized_amount爲你的表單輸入的屬性。只是一個建議。沒有一個真正的答案。

+0

好吧,那麼我想只使用if檢查來查找我想要的密鑰並對其進行修改 – DRing

+0

是的;但是,我認爲你應該重新考慮你對問題的整體解決方案。修改params散列不是一個好主意。 –

+0

我接受建議,我應該如何修改和格式化用戶輸入的內容以匹配我想要存儲在表中的內容。例如嘗試採取可能的「1 1/2」並將其轉換爲1.5 – DRing