Rails link_to with remote:true不请求JS

时间:2017-08-01 09:18:26

标签: ruby-on-rails

尝试渲染模式以更新任务但是当使用remote:true时,它只是请求html格式,我甚至检查了也不接受js的请求标题。

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8

我不确定是什么错。我已经尝试在link_to中说明格式并在控制器中有一个respond_to,但是渲染原始文本html而不是在我的.js.haml中执行js

违规代码:

查看[.html.haml]:

= link_to 'Edit', edit_task_path(task), remote: true

控制器:

  def edit
    @task = Task.find(params[:id])
    render :show_form
  end

show_form.js.haml:

:plain
  $('#modal1').modal('open');
  $('#modal1').html("#{escape_javascript(render partial: 'create_task', locals: {task: @task})});

此外,我还包含了所有必需的库,我甚至使用了remote:true否则在代码中提交表单的位置都可以正常工作。

2 个答案:

答案 0 :(得分:0)

在控制器中按照以下代码进行更改。

  respond_to do |format|
     format.html { render layout: 'YOUR LAYOUT' } 
     format.js
  end

you can use template or text in place of layout.

答案 1 :(得分:0)

将以下内容写入清单文件(application.js)

//= require jquery
//= require jquery_ujs