2015-04-29 5 views
1

Я пытаюсь создать форму, которая позволяет мне удалять несколько сообщений, на основе которых проверяется или выполнять другое действие. Я борюсь с доступом к идентификаторам почты из формы. Если я использую теги f.submit, то мой код работает нормально. Однако, когда я пытаюсь использовать кнопки бутстрапа, это не сработает.несколько кнопок отправки формы для одной формы rails 4

Ниже представлен вид, который имеет форму, расположенную внутри таблицы начальной загрузки, а затем кнопки отправки на внешней стороне таблицы.

  <%= form_for :pending_forms, html: {method: 'get'} do |f| %> 
      <table class="table"> 
       <tbody> 
        <% if @pending_posts.any? %> 
          <% @pending_posts.each do |post| %> 
           <tr> 
            <td><%= post.post_name %></td> 
            <td><%= post.created_at %></td> 
            <td><%= check_box_tag 'post_ids[]', post.id %></td> 
           </tr> 
          <% end %> 
        <% end %> 
       </tbody> 
      </table> 
      <button type="submit" class="btn btn-danger">Remove Post</button> 
      <button type="submit" class="btn btn-primary">Go Live</button> 
     <% end %> 

ответ

0
if params[:commit] == "Remove Post" 
    PendingPost.where(id: params[:post_ids]).destroy_all 
end 
if params[:commit] == "Go Live" 
    #do some stuff 
end 

Лучше писать кнопки отправки внутри form_tag области.

<%= form_tag do %> 
    <table> 
    <tbody> 
     <% if @pending_posts.any? %> 
      <% @pending_posts.each do |post| %> 
      <tr> 
       <td><%= post.post_name %></td> 
       <td><%= post.created_at %></td> 
       <td><%= check_box_tag 'post_ids[]', post.id %></td> 
      </tr> 
      <% end %> 
     <% end %> 
    </tbody> 
    </table> 
    <button type="submit" class="btn btn-danger">Remove Post</button> 
    <button type="submit" class="btn btn-primary">Go Live</button> 
<% end %> 
+0

Это не решает мою проблему. Это все еще не удаляет выбранные сообщения. – BadProgrammer

+0

В контроллере вы должны написать PendingPost.where (id: params [: post_ids]). Destroy_all вместо PendingPost.where (id: params [: commit]). Destroy_all –

+0

Хорошо, но когда Я нажимаю delete, это отправляет POST, когда мой маршрут настроен на получение GET. – BadProgrammer

Смежные вопросы