rails处理为HTML而不是JS

时间:2017-02-08 10:34:17

标签: ruby-on-rails ajax

我正在尝试使用ajax创建一个函数来编辑和更新表单中的注释。 我的编辑功能使用ajax时没有问题,但是当我尝试更新注释时,我收到错误: CommentsController #update缺少此请求格式和变体的模板。 request.formats:[“text / html”] request.variant:[]

comments_controller

def update
    respond_to :js
    authorize @comment, :update?
    @comment.update(comment_params)


    if @comment.save
      flash[:notice] = 'Commentaar is succesvol toegevoegd.'
    else
      flash.now[:alert] = 'Commentaar is niet toegevoegd.'
    end      
end

def comment_params
    params.require(:comment).permit(:text)
end

update.js.erb

$("#comment-ajax-<%= @comment.id %>").html("<%= j render @comment %>");

_comment.html.erb

<% if policy(comment).edit? %>
   <%= link_to 'edit', [:edit, comment.fabmoment, comment], remote: true, 'data-type' => 'script' %>
<% end %>

评论表

<%= simple_form_for [fabmoment, comment] do |f| %>
    <!-- Input -->
    <%= f.input_field :text, rows: 4 %>
    <%= f.label :text %>
<% end %>

1 个答案:

答案 0 :(得分:0)

错误消息告诉您表单正在以“text / html”的形式提交。尝试将remote: true添加到实际表单而不是link_to