2013-07-03 7 views
0

전망/자동차/_form.html.haml는보기에서 컨트롤러 동작으로 변수를 전달하는 방법은 무엇입니까?

= link_to "Deactivate", "/vehicles/deactivate"

나는 위의 내 LINK_TO에 @vehicle를 전달하고자합니다. 어떻게해야합니까?

컨트롤러/vehicles_controller.rb

def deactivate 
    @vehicle = Vehicle.find(params[:id]) 
    @vehicle.active = 0 
    @vehicle.save 

    respond_to do |format| 
     format.html { redirect_to vehicles_url } 
     format.json { head :no_content } 
    end 
    end 

답변

0

이 나를 위해 일했다, 나는 내 컨트롤러 업데이트 작업을 사용하여 끝났다.

= link_to "Deactivate", vehicle_path(@vehicle, :vehicle => {:active => 0}), method: :put, :class=>'btn btn-mini'

3

는 쉽고 레일 방식으로, 당신은 레일 resources를 사용할 수 있도록하려면

# routes.rb 
resources :vehicles do 
    put 'deactivate', on: :member 
end 

# view: 
= link_to 'Deactivate', deactivate_vehicle_path(@vehicle), method: :put 
1

우수 답변은 이미 마렉 Lipka는 주어진다. ajax

<%= link_to 'Deactivate', javascript::void(0), :class => "deactivate" %> 

일부 스크립트를 넣어 사용하는 방법도 있습니다 :

<script> 
$(".deactivate").click(function() { 
    $.ajax({ 
     type: "post", 
     url: "/vehicles/deactivate", 
     data: {id: <%= @vehicle.id %>}, 
     dataType:'script', 
      beforeSend: function(){ 
       // do whatever you want 
      }, 
      success: function(response){ 
       // do whatever you want 
      } 
     }); 
}); 
</script> 
관련 문제