将 Rails form_for 提交按钮上的值与文本分开

Zub*_*Man 2 ruby forms ruby-on-rails

我有一个 Rails 4 应用程序,它使用 form_for 构建基本博客类型的表单,一切都按预期工作,除了一件事:我必须根据用户选择的提交按钮来确定博客的发布状态他们提交表格。这是我的 HAML 代码:

= form.submit 'Save as Draft', value: 'Draft', name: 'publish_state', class: 'button'
= form.submit 'Publish', value: 'Published', name: 'publish_state', class: 'button'
Run Code Online (Sandbox Code Playgroud)

在此设置中,有两种不同的状态PublishedDraft,两者都被视为数据库中的字符串。

我遇到的问题是,即使我指定了要说的按钮'Save as Draft''Publish'它们也只是根据它们的值'Draft'分别显示'Published'。我四处搜索,只能找到如何指定值或文本,而不能将两者分开。Rails 表单中有没有办法允许这样做?或者,如果不是 Rails 形式,还有哪些其他有效的方法?

===================

tl;dr - 如何使 Rails 表单中的按钮显示一个字符串并在单击时返回另一个字符串?

ste*_*rro 8

您可以使用通用按钮作为提交按钮。

= form.button 'Save as Draft', value: 'Draft', name: 'publish_state', class: 'button', type: 'submit'
= form.button 'Publish', value: 'Published', name: 'publish_state', class: 'button', type: 'submit'
Run Code Online (Sandbox Code Playgroud)