2011-07-26 3 views
0

처음부터 레일 앱을 개발 한 것은 이번이 처음입니다. 내 코드의 목표는 제목과 링크 (둘 다 데이터베이스 테이블에 저장 됨)를 사용하여 사용자를 링크로 리디렉션하는 것입니다. (문제) 링크 제목을 클릭하면 google.com 대신 localhost : 3000/google.com으로 리디렉션됩니다.웹 앱 외부로 리디렉션 하시겠습니까?

(1) 레일을 사용하여 3.1

(2) 내 routes.rb 파일의 내용은 다음과 같습니다 (:

<h1>Links#index</h1> 

<% @links.each do |link| %> 
<p> 
<%= link_to link.title, link.link %> 
</p> 
<% end %> 

노트 (가정 google.com은 link.link의 값을했다) resources :links의 사용이 내 문제를 함께 할 수있는 뭔가)

CodeHed::Application.routes.draw do 
    resources :links 
    get "links/index" 
    root :to => "links#index" 
end 
+0

해결되었습니다. 앱 외부로 사용자를 리디렉션하려면 Rails의 테이블에 url 값과 함께 HTTP : //를 포함해야합니다. 그렇지 않으면 값이 현재 url에 추가됩니다. localhost : 3000/google.com의 경우와 동일합니다. – Dru

답변

1

이 당신의 연결이 'http : //'로 접두어가 있는지 확실하지? 그렇지 않은 경우, 추가 시도한다는 점에서 프로그래밍 같은 뭔가 :

def add_http(link) 
    if (link =~ /http(?:s)?:\/\//) 
    link 
    else 
    "http://#{link}" 
    end 
end 

그 다음 작동하지 않습니다 당신은 단순히 원시 HTML을 입력 할 수있는 경우 :

<h1>Links#index</h1> 

<% @links.each do |link| %> 
<p> 
    <%= link_to title, add_http(link) %> 
</p> 
<% end %> 

(나는이 코드를 확인하지 않은)

+0

당신이 대답했다는 것을 깨닫기 전에 내 자신의 질문에 대해 논평했습니다. 그것이 문제였습니다. 감사. – Dru

+0

문제가 있다는 것을 깨닫기 전에 "a href"방법을 시도했습니다. 참고로 http : //가 없으면 URL에 현재 URL을 추가하기 만하면됩니다. – Dru

관련 문제