根据用户点击的提交按钮,使布尔属性为false或true?

时间:2012-12-17 10:43:41

标签: javascript ruby-on-rails erb

我在我的Post模型中添加了草稿属性:

  create_table "posts", :force => true do |t|
    t.text     "content",            :limit => 255
    t.integer  "user_id"
    t.boolean  "draft",                             :default => false
    t.datetime "published_at"
  end

现在它显示为一个复选框:

<%= form_for(@post, :html => { :multipart => true }) do |f| %>

<%= f.label :title %>
<%= f.text_field :title %>

<%= f.label :content %>
<%= f.text_area :content, id: "wysihtml5-textarea" %>

<%= f.label :category_id, "Select Category" %>
<%= f.collection_select :category_id, Category.order(:name), :id, :name,
                        { prompt: 'Select Category' } %>

<%= f.label :draft %>
<%= f.check_box :draft %>

<div class="form-actions">
  <%= f.submit "Create post", class: "btn btn-primary" %>
</div>

<% end %>

我想修改表单,以便用户可以点击Save as DraftPublish按钮(与在WordPress中一样),而不是点击草稿复选框。

我不知道如何让这些按钮影响draft属性的值。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

当您单击submit按钮时,Rails将自动在"commit"哈希中包含params条目,该条目包含单击按钮的文本。您应该能够在控制器中关闭它。

请注意,上次我尝试时,jquery-ujs中存在一个错误,这意味着此策略不适用于声明为:remote => true的表单。但是,那是一段时间以前我确实提出了一个错误报告,所以它可能已经被修复了。