[英]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.