2017-04-04 7 views
1

無効なユーザーアカウントをアクティブにできるページがありますが、アクティブにする前に新しいパスワードを割り当てる必要があります。このボタンがある「パスワードを追加」形式の終わりにRailsの送信ボタンにアクションコールを添付するにはどうすればいいですか?

:現在、私はこれらのアクションを実行するために2つのボタンを持っている

<%= f.submit %> 

さらに少しページに設定このボタンがありますユーザーのステータスを「アクティブ」に設定してください:

<%= standard_button 'Activate user', update_status_user_path(@user), 
:method => :patch %> 

可能であれば、2番目のボタンの機能を送信ボタンに追加したいと思います。

私はフォームとそのボタンの背後にある魔法を完全に把握していないので、これが可能かどうか、もしあれば、これをどのように達成できるのか疑問に思っていますか?

答えて

0

ボタンはミニフォームと考えることができます。 button_to railsメソッドの詳細については、docsを参照してください。

form_forには、フォームがどこに投稿されているかを指定するurlがあります。そのコントローラメソッドでは、ユーザーのステータスを「アクティブ」に更新するロジックを含めることができます。何かのように

def some_method 
    user = User.find(params[:user_id]) 
    user.update_attribute(:status, "active") 
end 
+0

フォームは現在、多くの他のページでも使用されているパスワード変更方法に投稿しています。可能であれば、私はむしろその特定の方法で変更を加えることを避けたいと思います。ボタンを2つの別々のことをすることはできません - フォームを提出し、何らかのアクションを呼び出しますか? – Teresa

+0

または、私はあなたのソリューションをよく理解していないかもしれません... – Teresa

+1

フォームは1つのアクションにしか投稿できないため、ユーザーステータスの更新を処理する必要があります。あなたはユーザーステータスを更新するためにjavascriptを使用できますが、それはお勧めできません。もう1つのオプションは、フォームに隠しフィールドまたはデータ属性を含めることです。アクションは、非表示フィールドがあるかどうかをチェックし、非表示フィールドが存在する場合にのみユーザーステータスを更新することができます。あるいは、フォームアクションはリクエストがどこから来たのかを確認し、リクエストが特定のページからのものである場合にのみユーザステータスを更新することができます。 – margo

関連する問題