繁体   English   中英

单击提交按钮后未重新加载Ruby on Rails页面

[英]Ruby on Rails Page not reloading on submit button click

我有一个批准按钮,用于更改Shop表记录的status属性。 当我单击它时,它确实会更改属性,但不会重新加载页面,因此我必须手动重新加载页面才能看到结果,这非常不方便。 看起来一切都可以正常工作,但页面仍无法重新加载。

我的观点是:

<%= form_for([:admin, @shop], remote: true, data: { confirm: "You sure?" }) do |fr| %>
  <%= fr.hidden_field :status, :value => 2 %>
  <%= fr.submit "Reject", class: "btn btn-large btn-danger" %>
<% end %>

控制器

  def update
    @shop = Shop.find(params[:id])

    if @shop.update_attributes(shop_params)
      flash[:success] = "Shop updated"
      redirect_to([:admin, @shop])
    else
      render 'edit'
    end
  end

我将不胜感激,谢谢!

您在form_for中使用remote: true ,它通过AJAX提交表单。

您可能需要添加method: :put以便表单点击操作update而不是create

因此,只需尝试删除remote: true并添加method: :put ,然后再次尝试提交表单即可。

<%= form_for([:admin, @shop], method: :put, data: { confirm: "You sure?" }) do |fr| %>
  <%= fr.hidden_field :status, :value => 2 %>
  <%= fr.submit "Reject", class: "btn btn-large btn-danger" %>
<% end %>

也许您错过了response_do做| format | 电话还是您在问题上忽略了他们?

应该是这样的:

  def update
    @shop = Shop.find(params[:id])

    respond_to do |format|
     if @shop.update(shop_params)
       format.html { redirect_to [:admin, @shop], notice: "Shop updated"
     else
       format.html { render action: 'edit' }
     end
   end  
  end

希望能有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM