【问题标题】:How to make Ajax work with form_tag in Rails?如何使 Ajax 与 Rails 中的 form_tag 一起工作?
【发布时间】:2019-03-30 03:31:41
【问题描述】:

我尝试了多个 Youtube 教程和 StackOverflow 问题,但我的 Ajax 仍然无法使用 form_tag。我怎样才能让它发挥作用?

基本上我希望在选中复选框并单击提交按钮后删除课程的 td。

代码如下:

_courses.html.erb:

<%= form_tag delete_drafts_path, remote: true do %>

  <%= submit_tag 'Update', class: 'course-container-new-row-button' %>

  <% @courses_drafts.each do |course| %>
   <tr>
    <td">
     <div class="check-button">
      <label>
       <%= check_box_tag "approved_ids[]", course.id, nil %>
        <span>
         <i class="fa fa-check" aria-hidden="true"></I>
        </span>
       </label>
      </div>
     </td>
    </tr>
  <% end %>
<% end %>

courses.js.erb:

$('.course-container-new-row-button').bind("ajax:success", function() {
    $(this).closest('td').fadeOut();
})

courses_controller.rb:

def courses 
  @courses_pending = Course.where(activity: 2).page(params[:page]).order('day ASC')

  respond_to do |format|
    format.js
    format.html
  end
end

路线:

  post :delete_drafts, to: "courses#courses", as: :delete_drafts

【问题讨论】:

  • 您可以在单击提交按钮时分享日志吗?

标签: ruby-on-rails ruby ajax


【解决方案1】:

要使远程表单工作,您必须在您的application.js 中包含rails-ujs(或jquery-ujs for Rails

//= require rails-ujs

【讨论】:

  • 我确实有那行 //= require rails-ujs and remote: true 工作正常。
  • 那么“ajax 不起作用”是什么意思?提交表单时是否在浏览器控制台中看到 XHR 请求?
猜你喜欢
  • 1970-01-01
  • 2014-01-25
  • 1970-01-01
  • 2017-04-24
  • 1970-01-01
  • 2011-04-04
  • 1970-01-01
  • 2015-02-12
  • 1970-01-01
相关资源
最近更新 更多