2011-08-01 7 views
0

サイトで投稿された画像を確認するためにform_forを設定しましたが、変更をコミットするだけでなくフィールドに値を送る複数のsubmitタグ?複数のsubmitタグをレール3でカスタマイズするform_for

私は、「画像を承認する」ボタンをクリックするのであればその方法は、フォームが送信され、私の「状態」フィールドは、私は笑これを行う方法を見当がつかない

を「承認」に設定されています。

答えて

0

paramsハッシュで押されたボタンにアクセスできます。これは私の迅速かつ汚いソリューションです、あなたはREST-FULコントローラを持っていると仮定すると:

# images_controller.rb 
def update 
    @image = Image.find(params[:id]) 
    case params[:commit] # Value of button (which is shown as the text of the button in browsers) 
    when 'approve image' 
    @image.status = 'approved' 
    when 'other status' 
    ... 
    else 
    @image.status = 'flagged' 
    end 
    @image.save 
    # Redirect or whatever 
end 

よりよい解決策:

# images_controller 
before_filter :set_status 

def update 
    @image = Image.find(params[:id]) 
    @image.update_attributes(params[:image|) 
    # Redirect 
end 

private 
def set_status 
    params[:image][:status] = case params[:commit] 
    when 'approve image' 
    'approved' 
    ... 
    else 
    'flagged' 
    end 
end 
+0

クールおかげで、どのように私は、実際のボタンカントーを作るのですか? submit_tagにはプリセット値がありませんか?私はそれを変更することはできますか? – rugbert

+0

'<%= f.submit( 'Approve Image')%>'はそれを行います。 –

関連する問題