【问题标题】:Simple Form make remote throwing errors简单表单使远程抛出错误
【发布时间】:2019-05-15 16:24:02
【问题描述】:

当我尝试将其设置为远程时,我的 simple_form 无法正常工作。我不想刷新整个页面,只刷新有表单的区域。目前,我有这个:

<div class="col-2">
    <%= simple_form_for ([current_user, @character]), defaults: {label: false} do |m| %>
        <%= m.simple_fields_for :dnd5e_sheet do |p| %>
            <%= p.input :acrobatics, as: :boolean, input_html: { onchange: 'this.form.submit();' } %>
        <% end %>
    <% end %>
</div>

这可行,但整个页面刷新,所以我添加了一条新路线:

resources :user, only: [:show] do
    resources :characters do
      put "minus-hp", to: "characters#minus_hp"
      put "add-hp", to: "characters#add_hp"
      patch "skill-update", to: "characters#skill_update"
    end
    resources :campaigns
  end 

在控制器中我做了一个新动作:

def skill_update
    @character = Character.includes(:dnd5e_sheet)
                          .find(params[:character_id])
    @character.update(character_params)
    respond_to do |format|
      format.js { render partial: 'characters/DnD5e/skills' }
    end
  end

skill.js.erb 只是一个简单的渲染:

$("#stats").html("<%= escape_javascript(render partial: 'characters/DnD5e/skills_card') %>");

我已经尝试了所有我能想到的 URL 路径组合,但都无法正常工作。

编辑: 我也试过这个:

<%= simple_form_for @character, url: user_character_skill_update_path(current_user, @character), method: :put, remote: true, :authenticity_token => true, defaults: {label: false} do |m| %>
                          <%= m.simple_fields_for :dnd5e_sheet do |p| %>
                            <%= p.input :acrobatics, as: :boolean, input_html: { onchange: 'this.form.submit();' } %>
                          <% end %>
                        <% end %>

但它以 HTML 请求而不是 javascript 的形式发送它,所以在 response_to 中会出现错误

【问题讨论】:

    标签: ruby-on-rails simple-form-for


    【解决方案1】:

    所以从这个问题中发现Rails Trying to submit a form onchange of dropdown

    错的不是表单或者remote true,而是onchange事件,所以改成这样:

    <%= m.input :acrobatics, input_html: { onchange: 'Rails.fire(this.form, "submit")' } %>
    

    远程表单的一切都按预期工作

    【讨论】:

      猜你喜欢
      • 2011-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-21
      • 2016-01-07
      • 2019-04-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多