jQuery Rails更新属性不起作用

时间:2019-03-19 21:14:35

标签: jquery ruby-on-rails

我表中的一个字段需要可编辑。我正在尝试通过使用某些JQuery来实现它,但是,该属性并未在数据库中更新,相反,它只是完全删除了该属性并变为null。但是,我的服务器日志显示一个提交,其中尝试属性更新显示在哈希中。

Rails控制器:

  def edit
    respond_to do |format|
      format.js { render partial: 'update-advise' }
    end
  end

  def update
    @pan.update_advise!
      respond_to do |format|
        format.js { redirect_to root_path }
      end
  end

Pan模型方法:

  def update_advise!
    update_attributes!(advise: advise)
  end

这是我想要可编辑的唯一属性。

我的表单:

<div id='update-advise'>
  <div>
    <h2>New Advise Amount</h2>
  </div>

  <div>
    <%= form_with model: @pan, remote: true do |f| %>
      <%= f.text_field :advise %>
      <%= f.submit 'Update' %>
    <% end %>
  </div>
</div>

最后,我在写jquery的地方update-advise.js.erb

$("#condense-table").hide();
$("#update-advise").html("<%= escape_javascript(render :partial => 'update_advise_field') %>");

如上所述,服务器日志显示提交但不更新数据库:

  

于2019-03-19 17:07:43 -0400为127.0.0.1开始PATCH“ / pans / 1”   由PansController#update作为JS参数进行处理:   {“ utf8” =>“✓”,   “ authenticity_token” =>“ ccB9wsuhaeAfgpPizUOj / NGYntqNIV / C + h5xEZ3tKtyVjnE8kDk569t / t3CVyYErTptdhgys8Qcm93Fp / S / nMQ ==”,   “ pan” => {“ advise” =>“ 600”} ,“ commit” =>“ Update”,“ id” =>“ 1”}   加载(0.3ms)选择“ pans”。*从“ pans”到“ pans”。“ id” =   $ 1 LIMIT $ 2 [[“ id”,1],[“ LIMIT”,1]]↳   app / controllers / pans_controller.rb:45(0.2ms)开始↳   app / models / pan.rb:5电池负载(0.2ms)选择“电池”。*   从“电池”到“电池”。“ id” = $ 1 LIMIT $ 2 [[“ id”,1],   [“ LIMIT”,1]]↳app / models / pan.rb:5(0.2ms)COMMIT↳   app / models / pan.rb:5(0.2ms)开始   app / controllers / pans_controller.rb:15(0.3ms)提交↳   app / controllers / pans_controller.rb:15重定向到   http://localhost:3000/在27毫秒内完成200 OK(ActiveRecord:6.1毫秒)

第二,有没有一种方法可以使字段直接在表中可编辑而没有任何宝石呢?

0 个答案:

没有答案