あなただ質問は少しあいまいです、あなたは言っていないので、それははっきりしていないので何bid
に取り付けられた、または他のモデルは、あなたのアプリケーションであるかをされています。
しかし、これはオークションサイトであり、オークションには入札があるとします。入札が
- を受け付けた場合、そのオークション上の他のすべての入札が破壊され受理されました
- 入札は、それが
true
に設定accepted
ブール型フィールドのしています。
これが実行しようとしていることに近い場合は、以下のコードを実行する必要があります。 app/controllers/bids_controller.rb
# PUT /bids/:id/accept
def BidsController < ApplicationController
def accept
@bid = Bid.find(params[:id])
@bid.update_attribute(:accepted, true)
@bid.auction.bids.each do |rejected_bid|
rejected_bid.destroy unless rejected_bid == @bid # destroys all be the accepted bid
end
flash[:notice] = "Bid accepted."
respond_to do |format|
format.html { redirect_to "/mybids" }
format.json { head :no_content }
end
end
end
で
次に、あなたのconfig/routes.rb
ファイルにこのアクションのルートを追加する必要があります。以下のような何か...
resources :bids do
put :accept, :on => :member
end
フォームビュー、あなたはこのように、このルートにリンクになります。
link_to "accept", accept_bid_path(@bid)
そして、あなたはあなたのコマンドラインからrake routes
を呼び出す場合、あなたはのようなエントリが表示されるはずですこの:
accept_bid PUT /bids/:id/accept(.format) {:action=>"accept", :controller=>"bids}
はい!これは私がしたいことです!そして、私はどのようにビューから呼び出すことができますか? –
カスタムアクションのルートを追加する必要があります。それはヘルパーとして利用可能で、 'accept_bid_path(:id)'となります。ここで、 ':id'はあなたが受け入れる' Bid'オブジェクトの** id **です。 – jefflunt
回答にルート定義を追加しました。あなたが必要とするすべての情報でなければなりません。詳細については、このルーティングガイドを参照してください:http://guides.rubyonrails.org/routing.html – jefflunt