2016-06-30 6 views
-1

ERRORて属性を更新しようとしているとき:Noルートマッチ[GET] "/予約/:ID /%の3E:フォーマット"のRails:経路エラーのlink_to

私は時にクリック "のリンクの属性を更新したいですlink_to」..

<%= link_to 'Cancel', '/bookings/:id/(.:format)' %> 

routes.rbを

put '/bookings/:id/(.:format)' => "bookings#tocancel" 
patch '/bookings/:id/(.:format)' => "bookings#tocancel" 

コントローラ

def tocancel 
@booking = Booking.find(params[:id]) 
@booking.update_attribute(:status, "cancel") 
respond_to do |format| 
    format.html { redirect_to @booking, notice: 'Booking was successfully cancelled.' } 
    format.json { render :show, status: :ok, location: @booking } 

+0

URL形式をlink_toに渡すことはありません。ヘルパーメソッドbookings_pathを使用して、@ bookingオブジェクトを渡すことができます。それについての(優秀な)ドキュメントを読んでください:http://guides.rubyonrails.org/routing.html – MrWillihog

+0

''% '=' link_to 'キャンセル'、 'complete_url/bookingings/pass_id_value_here'% ''id:場所。 –

+0

エラー:getprojecting_path(booking)%>リンク:[GET] "/予約/ 36/tocancel"に一致するルートがありません –

答えて

0

として予約コントローラにメソッドを作成します。このための経路があろう

def tocancel 
@booking = Booking.find(params[:id]) 
@booking.update_attribute(:status, "cancel") 
respond_to do |format| 
    format.html { redirect_to @booking, notice: 'Booking was successfully cancelled.' } 
    format.json { render :show, status: :ok, location: @booking } 
end 
end 

link_to "Cancel", tocancel_booking_path(booking.id) 

resources :bookings do 
    member do 
    get :tocancel 
    end 
end 

リンクをキャンセルするように作成することができますここでは、cancel_idを渡してリンクをキャンセルする必要があります。ここでキャンセルリンクを設定したページでbooking_idの取得方法を確認してください。 問題がある場合はお知らせください。

+0

エラーが発生しました:未定義のローカル変数またはメソッド# 0x00000003265158>:0x007fe38405a900> –

+0

このリンクを追加するページのURLを教えてください。そのページのbooking_idを取得し、このキャンセルリンクに渡す必要があります。 – SnehaT

+0

ここはリンクですactive.html.erb [link](https://drive.google.com/file/d/0B-cw8FVV0gUeSENXWGlrbW1HNVU/view? –

関連する問題