0

表示ビューでアイテムの値を更新しようとしているので、ビューに送信ボタンのあるフォームを埋め込んでいますが、ページの下部に別のアクションを実行してリロードする 2 番目のボタンがあります。ページ。ページのリロードとアイテムの値の更新を同時に行うための 1 つのボタンが必要です。2 つのボタンを押す必要はありません。これまでのところ、私はそれを行う方法を理解していません。

埋め込みフォーム:

        <%= 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>
4

2 に答える 2

0

私はあなたが何をしているのか完全には理解していませんが、私が見たところ、items/update_requested更新を処理してからredirect_to :back.

これがページ上の唯一のフォームであり、その 2 番目のボタンは必要ないと思います。

編集

あなたが行った最初のコメントに基づいて、フォームを両方を行うアクションに向けるだけです。

def update_and_unrelate
  @item = Item.find(params[:id]
  if @item.update_attributes(params[:item])
    #ここで無関係なことをする
  そうしないと
    redirect_to :back, :alert => "息子は起こらなかった"
  終わり
終わり

UI を本当に改善したい場合は、ボタンを 1 つだけにして、フィールドが入力されている場合は関係のないことを行うことができます。

個人的には、ボタンが少ないほど良いと感じており、ボタンを「実行」するのが最善の方法です。

于 2012-06-08T00:13:08.350 に答える
0

探しているものとは異なる場合がありますが、ページを更新するよりも優れたエクスペリエンスを提供します。

https://github.com/bernat/best_in_place

于 2012-06-08T00:41:32.610 に答える