2011-01-22 4 views
0

コントローラーの上部に、アクションが動作するために必要なパラメーターを定義する機能を見て覚えています。私の人生のために私はもうその機能の一切の言及を見つけること、それは次のために有用であろうように見えることはできません。Railsでコントローラーアクションの期待パラメーターを定義してください

def sort 
    params[:links].each_with_index do |id, index| 
    @link_set.links.in_context(context).update_all(['position=?', index+1], ['id=?', id]) 
    end 
    render :nothing => true 
end 

私はparamsは期待してい[:リンク]をので、いくつかのSmartyのが訪問することを決定した場合そのアクションは私にparamsを与えないとnil.each_with_indexで失敗します。

このタイプのすべてのメソッドにこれをコーディングしなくても、パラメータが欠落している場合は、404などを適切に指定するとよいでしょう。

これはありますか? :)

答えて

-1

私はそれを行うことができる既存の機能を思い出させません。あなたは、あなたの行動の先頭に代わりにこれを使用することができます:

params[:links] ||= [] 
0

このコードを試してみてください。

before_filter :check_params 

private 
def check_params 
    needed_params=[:links] 
    needed_params.each do |x| 
     render :text=>"Missing param #{x}", :status=>400 
     return 
    end 

エンド

あなたのクラスの終わりにこのコードを入れてください。それはあらゆる行動のために働くでしょう。また、エラー404(File Not Found)ではなく、エラーコード400(Bad Request)を返したいとします。

関連する問題