我正在更新显示视图中项目的值,所以我在视图中嵌入了一个带有提交按钮的表单,但是我在页面底部有第二个按钮执行不同的操作动作并重新加载页面。我想有一个按钮来重新加载页面并同时更新项目的值;而不是需要按两个按钮。到目前为止,我还没弄明白该怎么做。
嵌入式表格:
<%= form_for @item, :url => { :action => "update" } do |f| %>
<b>Amount to be Requested:<b>
<%= f.text_field :quantity %>
<%= f.submit "Add" %>
<% end %>
页面底部的按钮:
<p><%= button_to "Add to my Request", add_list_item_path(@item), :id => "add_button" %></p>
答案 0 :(得分:0)
我完全不明白你在做什么,但从我看到的情况来看,items/update_requested
应该处理你的更新,然后是redirect_to :back
。
我认为这是页面上唯一的表单,不需要第二个按钮。
根据您提出的第一条评论,我只是将表单指向同时执行这两项操作的操作。
def update_and_unrelate @item = Item.find(params[:id] if @item.update_attributes(params[:item]) #do unrelated stuff here else redirect_to :back, :alert => "Didn't happen son" end end
如果你真的想要改进用户界面,只需要一个按钮,如果填写了字段,也可以不相关。
就我个人而言,我认为按钮越少越好,只为它们“做”是最好的方法。
答案 1 :(得分:0)
可能不是您正在寻找的,但会提供比刷新页面更好的体验: