0

개인 개체가 삭제 된 후 트리거되는 redirect_to :back을 만들려고합니다. 삭제 객체 코드를 트리거하기 전에 사용자가 올 수있는 여러 페이지가 있습니다. 그들이 person#show 페이지에서 온 경우 admin_persons_path이라는 경로로 리디렉션하고 싶습니다. 다른 페이지에서 올 경우 사용자가 자신이있는 페이지로 리디렉션되기를 원합니다. 사람 # show 페이지의 URL 구조는 localhost:3000/admin/persons/[some_id_number]입니다. 리퍼러 URL을 읽고 그에 따라 리디렉션하는 코드를 작성하려고합니다. 나는 다음과 같이하려고 노력하고있다 :레일이 숫자로 끝나는 지 확인하십시오.

if request.referer.end_with?(some regular expression) 
    redirect_to :back 
else 
    redirect_to admin_persons_path 
end 

문제는 내가 end_with를 생각하지 않는다는 것이다. 메서드는 정규식을 사용하여 시도 할 때 오류가 발생하기 때문에 메서드를 사용할 수 있습니다.

TypeError: no implicit conversion of Regexp into String 

어떻게 작동합니까?

참조자가 기술적으로 존재하기 때문에 redirect_back(fallback_location: admin_persons_path)을 사용하면 작동하지 않습니다. 내가 원하는 것을 성취하는 내장 된 방법이 있다면, 나는 그것을 모르고있다.

+0

'/'로 URL을 분할하고 마지막 매개 변수가 숫자인지 확인하십시오. – TheChetan

+0

'if request.referer = ~/regex \ z /'(또는 정규 표현식이 변수 인 경우'/ # {regex} \ z /')와 같은 것을 사용하십시오 –

+0

문제는 서식 설정만큼 간단 할 수 있습니다 ... 귀하의 예제에서 말할 수 없지만, 정규식은 단지 정규식입니다. 하지만 regex.match (url)와 같은 것은 문자열을 반환합니다. – jjk

답변

0
확인이 예

URL = 레일은 "http://www.example.com/articles?page=2"

def last_element_for_url(url) 
    if /[0-9]/.match(a[a.length-1]).to_a.length > 0 
    true 
    else 
    false 
    end 
end 

, 우리는 다음 위의 방법은 참 또는 거짓이 URL에 따라 반환합니다 url = request.original_url을 설정할 수 있습니다.

관련 문제