我有一个创建(和更新)材料的导轨表单。显然,默认情况下,当用户登录并检索材料时,表单会呈现更新操作。但是,我希望有一个“另存为”操作,以防用户想要保存另一个版本的材料。显而易见的方法是在控制器中设置一个发送到“更新”的按钮,另一个发送到“新”的按钮,但我不知道如何执行此操作,因为它似乎取决于 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
但这不起作用。这是一个可行的策略还是很疯狂?