在一个Ruby表单上向两个控制器提交两个按钮

时间:2015-01-03 19:39:14

标签: ruby-on-rails ruby forms form-submit

我有一个提交按钮适用于此表单:

_form.html.erb

<%= form_for(@goal) do |f| %>
  <% if @goal.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@goal.errors.count, "error") %> prohibited this goal from being saved:</h2>

      <ul>
      <% @goal.errors.full_messages.each do |message| %>
        <li><%= message %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="america">
<form>

  <div class="form-group">
    <%= f.text_field :name, class: 'form-control', placeholder: 'Enter Goal' %>
  </div>
    <div class="date-group">
      <label> Deadline: </label>
      <%= f.date_select :deadline, :order => [:month, :day, :year], class: 'date-select' %>
    </div>

<div class="america2">
  <%= button_tag(type: 'submit', class: "btn") do %>
  <span class="glyphicon glyphicon-plus"></span>
  <% end %>

  <%= link_to goals_path, class: 'btn' do %>
  <span class="glyphicon glyphicon-chevron-left"></span>
  <% end %>

  <%= link_to @goal, method: :delete, data: { confirm: 'Are you sure?' }, class: 'btn' do %>
  <span class="glyphicon glyphicon-trash"></span>
  <% end %>
</div>
  </form>
</div>
<% end %>

如何添加另一个导致不同控制器/模型/索引的提交按钮?它是如何运作的:一旦用户完成一个自我强加的目标,他们就可以检查它。我希望检查它提交按钮,通过将目标索引发送到completed_goals索引来更新目标。

除了在此视图表单中添加内容之外,我还需要向GoalsController或AccomplishedGoalsController添加任何内容吗?

感谢您的帮助!我无法通过类似名称找到其他StackOverFlow问题的解决方案。

1 个答案:

答案 0 :(得分:0)

很难从你的描述中看出你想要实现的目标,并且你的html看起来很复杂,有很多没有结束标记的开始标记。

从我收集的内容来看,你正以错误的方式接近这一点。我建议只使用一个名为“completed”(true / false)的bool列的目标模型,而不是拥有目标模型和AccomplishedGoal模型。然后,您可以创建一个表单来更新此字段。要查找所有已完成的目标,您可以使用scopes

如果这不是您想要的,请更好地描述问题。