ruby-on-rails – 2提交表单中的按钮

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

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

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

<% semantic_form_for @ereport do |form| %>

  <% form.inputs do %>
    <%= form.input :title %>
    <%= form.input :body %>
  <% end %>
  <% form.buttons do %>
    <%= form.commit_button :label => "Publish Now" %>
<%= form.commit_button :label => "Save as Draft" %>
  <% end %>
<% end %>

在此先感谢您的帮助!

解决方法

我不知道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

相关文章

以下代码导致我的问题: class Foo def initialize(n=0) @n = n end attr_accessor :n d...
这是我的spec文件,当为上下文添加测试“而不是可单独更新用户余额”时,我得到以下错误. require 's...
我有一个拦截器:DevelopmentMailInterceptor和一个启动拦截器的inititializer setup_mail.rb. 但我想将...
例如,如果我有YAML文件 en: questions: new: 'New Question' other: recent: ...
我听说在RSpec中避免它,let,let !,指定,之前和主题是最佳做法. 关于让,让!之前,如果不使用这些,我该如...
我在Rails中使用MongoDB和mongo_mapper gem,项目足够大.有什么办法可以将数据从Mongoid迁移到 Postgres...