我已經繼承了一些rails應用程序,我需要稍微擴展它。這實際上很簡單,但我想確保我以正確的方式執行它...在ruby-on-rails項目中獲取參數 - 最佳實踐?
如果我訪問myapp:3000/api /個人,它會給我一個XML格式的完整列表。我想在URL中傳遞參數,以便我可以返回與登錄或電子郵件相匹配的用戶,例如yapp:3000/api/persons?login = jsmith會爲我提供相應登錄信息的人員。下面的代碼:
def index
if params.size > 2 # We have 'action' & 'controller' by default
if params['login']
@person = [Person.find(:first, :conditions => { :login => params['login'] })]
elsif params['email']
@persons = [Person.find(:first, :conditions => { :email => params['email'] })]
end
else
@persons = Person.find(:all)
end
end
兩個問題...
- 安全嗎? ActiveRecord是否可以保護我免受SQL注入攻擊(注意我相信正在進入的參數)?
- 這是做這件事的最佳方式嗎?還是有一些我不熟悉的自動導軌功能?
note - find_all_by_xxxx返回一個數組,它不應與find_by_xxxx混淆,它將返回任何舊匹配或零。 – Levi 2010-03-26 04:41:05