2014-07-23 1 views

답변

2

가능합니다. send을 사용하여 원하는 작업을 호출하십시오. 이 동작은 다른 동작이 동작 마지막에 render을 명시 적으로 호출하는 경우에만 작동합니다. 또한 : action_name 매개 변수를 신뢰하지 마십시오. : action_name을 사용하기 전에 허용 된 작업의 화이트리스트와 비교하여 확인하고 유효하지 않은 경우 오류를 발생 시키십시오. 예를 들어

class DummySoapController < ApplicationController 
    soap_service namespace: 'urn:WashOut' 

    def action 
    send(params[:action_name]) 
    end 

    soap_action "convert_to_string", :args => :integer, :return => :string 

    def convert_to_string 
    render :soap => params[:value].to_s 
    end 

    soap_action "convert_to_integer", :args => :integer, :return => :float 

    def convert_to_float 
    render :soap => params[:value].to_f 
    end 

end 

은 문자열 값을 사용하면 URL

http://example.com/dummy_soap/action?action_name=convert_to_string&value=1

또는 부동에게

http://example.com/dummy_soap/action?action_name=convert_to_float&value=1

+0

감사를 얻을 수를 사용하는 것이 얻을 수 있습니다. U're는 사람이다! – emrahbasman