0
我有一個Rails應用程序,其中的用戶參數都是通過帶有JSON參數的RESTful API提供的。具體來說,沒有用戶發佈數據的客戶端HTML表單:它是原始的JSON。我如何區分用戶參數和Action Pack參數?
所以要創建一個新的汽車入口,用戶可以:
POST www.mysite.com/api/car
model=Ford&year=2012
在我的應用程序,通過我收到這封信的時候,該行動寶盒值與用戶價值的PARAMS []哈希間雜,所以我得到:
params = {:model=>"Ford", :year=>"2012", :format=>"json", :action=>"create", :controller=>"api/cars"}
將用戶生成的參數與Action Pack生成的參數分開的最佳方法是什麼?我能想到的最好的辦法就是刪除後者:
car_params = params.reject {|k,v| [:format, :action, :controller].member?(k)}
car = car.new(car_params)
但是這並不是正確的。有沒有更好的辦法? (例如,我是否可以獲得Action Pack來將用戶提供的參數封裝爲單個散列並將其作爲params []的單個元素傳遞?)
呀,我把一個像我application_helper.rb文件的功能。我希望有一些竅門可以讓它完全不需要它! – 2012-08-07 16:09:55
由於這是Rails:'params.exclude(:format,:action,:controller)'方式更加簡潔。 – 2012-08-07 23:41:36
當我嘗試更簡潔的'params.exclude(:format,:action,:controller)'我得到'未定義的方法'exclude'「 – samjewell 2016-07-13 16:59:55