2在表单中提交按钮

我对表格有疑问。 我有一个相当标准的表单,用标题和正文保存一个post(在我的应用程序中称为eReport)。 该表还有一个“已发布”字段,它是布尔值。 保存的eReport仅在公共站点上显示此字段是否设置为true,false为默认值。

我希望在表单末尾显示两个按钮,而不是默认复选框:“立即发布”按钮和“另存为草稿”按钮。 如果用户按下前者,则已发布的字段将设置为true。 如果是后者,则假。 在PHP中,我曾经显示2个具有不同名称值的提交字段,然后使用if / else语句处理输入以确定要构建的正确SQL查询。 在Rails中,我假设我会在适当的操作下将此逻辑放在控制器中,但我不确定如何操作按钮的名称或id值。

为了记录,我正在使用Formtastic,但如果有人可以告诉我如何使用默认的Rails表单标签执行此操作,那也没关系。 这是我现在的表格的代码:

       "Publish Now" %>  "Save as Draft" %>   

在此先感谢您的帮助!

我不知道formtastic,但使用默认的rails表单构建器,你可以这样做:

 <%= form.submit "Save with option A", :name => "save_option_a" %> <%= form.submit "Save with option B", :name => "save_option_b" %> 

然后在控制器中,你可以用params选择那些:

 if params[:save_option_a] # do stuff end 

除了@iddlefingers的回答,这里是应用程序日志的视图(由于解释目的而删除一些无用的参数)

 Parameters: {"utf8"=>"✓", ..., "comentar"=>"Confirmar"} 

我们可以看到comentar是参数的名称,而"Confirmar"是它的值,也就是按钮的文本。

这是由submit_tag "Confirmar", :name => 'comentar'获得的submit_tag "Confirmar", :name => 'comentar'

所以一般情况下你可以(如果你想减少你正在使用的params的数量)几个submit_tag "onevalue", :name => 'SAMEname'submit_tag "othervalue", :name => 'SAMEname'

并在您的控制器中检索它们

 if params[:SAMEname] == "onevalue" # do stuff elsif params[:SAMEname] == "othervalue" #do different stuff end 

我认为你需要使用jQuery。 您可以绑定按钮单击事件并提交指定位置的表单。