マテリアルを作成 (および更新) する Rails フォームがあります。明らかに、デフォルトでは、ユーザーがログインして資料が取得されると、更新アクションでフォームがレンダリングされます。ただし、ユーザーがマテリアルの別のバージョンを保存したい場合に備えて、「名前を付けて保存」アクションが必要です。これを行う明白な方法は、コントローラーの「更新」に送信するボタンと「新規」に送信する別のボタンを用意することですが、form_for パラメーターに依存しているように見えるため、これを行う方法がわかりません。
アップデート
Javascript の使用を避けるために、form_for の URL を次のように変更してみました。
<%= form_for @material, :url => choose_action_path do |f| %>
次に、コントローラーに次のものがあります。
def choose_action
if params[:save_as] == "Save As"
redirect_to :action => "create"
else
redirect_to :action => "update"
end
end
しかし、これは機能していません。これは機能する可能性のある戦略ですか、それともクレイジーですか?