2014-07-06 64 views
1

我想知道您是否必須將某些查詢字符串或後續參數轉換爲特定數據類型才能在控制器中使用它們。例如,如果我將一個categoryid(數據庫中的整數)查詢字符串參數傳遞給控制器​​,是否必須使用to_i方法將其轉換爲控制器中的整數,或者Ruby是否會自動執行此操作?另外,如何使用rails控制檯測試查詢字符串參數值及其數據類型?當我測試我的應用程序時,我無法確切地告訴查詢字符串或後參數發生了什麼。您是否必須將查詢字符串參數轉換爲數據類型?

回答

2

Rails(尤其是ActiveRecord)通常相對容忍傳遞的數據類型。例如,這兩個行會返回用戶ID爲1:

User.find(1) 
User.find('1') 

而且同樣適用於更復雜的查詢:

User.where({ id: '1' }) 
User.where('id = ?', '1') 

參數來通過控制器爲字符串,這意味着你只需撥打User.find(params[:id])即可,無需致電params[:id].to_i

如果您想在Rails控制檯中檢查變量的類別,則可以在對象上調用.class。例如:

[1] pry(main)> "1".class 
=> String 
[2] pry(main)> 1.class 
=> Fixnum 

我希望有幫助。

+0

您的回答非常有幫助,謝謝! – thenextmogul

相關問題