0

ユーザーパラメーターがすべてJSONパラメーターを使用してRESTfulAPIを介して提供されるRailsアプリケーションがあります。具体的には、ユーザーがデータを投稿するクライアント側のHTMLフォームはありません。それは生のJSONです。

したがって、新しい車のエントリを作成するには、ユーザーは次のようになります。

POST www.mysite.com/api/car
model=Ford&year=2012

私のアプリでは、これを受け取るまでに、アクションパックの値がparams []ハッシュのユーザー値と混ざり合っているため、次のようになります。

params = {:model=>"Ford", :year=>"2012", :format=>"json", :action=>"create", :controller=>"api/cars"}

ユーザー生成パラメーターをアクションパックによって生成されたパラメーターから分離するための最良の方法は何ですか?私が考えることができる最善の方法は、後者を削除することです。

car_params = params.reject {|k,v| [:format, :action, :controller].member?(k)}
car = car.new(car_params)

しかし、それは正しいにおいがしません。もっと良い方法はありますか?(たとえば、Action Packを取得して、ユーザーが指定したparamsを単一のハッシュにカプセル化し、それをparams []の単一の要素として渡すことはできますか?)

4

1 に答える 1

0

それが役立つかどうかはわかりませんが、application_controllerでメソッドを作成するだけです:

def user_params
  return params.reject {|k,v| [:format, :action, :controller].member?(k)}
end

したがって、コード全体で、user_paramsActionPackパラメーターが不要な場合にのみ使用できます。

于 2012-08-06T16:46:36.480 に答える