2012-08-02 3 views
1

현재 내 앱의 사용자가 새 직업 게시판을 만들면 웹 사이트의 직업 페이지로 연결되는 URL을 입력합니다. 그런 다음이 링크를 사용하여 사이트에 연결하고 싶습니다.외부 URL 객체에 연결 RoR

내 데이터베이스에 job.job_url으로 저장되어 있으며 내 컨트롤러에 @link 개체를 정의하여 작업 및 관련 URL을 찾았습니다.

나는 현재 링크를 모든 작업을 통해 루프 다음 ​​코드를 가지고 제공 :

<section id="job-wrapper"> 
    <% @jobs.each do |job| %> 
    <%= link_to @link.job_url do %> 
     <%= job.title %> 
     <%= job.location %> 
     <%= job.job_type %> 
     <%= job.salary %> 
     <%= job.company %> 
    <% end %> 
    <% end %> 
</section> 

오전 데 문제는 http:// 레일을 포함하는 URL 링크는 내부에 있음을 가정하지 않고 이렇게 링크를 생성하는 것입니다 localhost:3000/www.google.com입니다.

레일스가 인스턴스에서 외부 링크를 인식하는 방법이 있습니까? 또는 사용자가 이미 명시한 경우를 제외하고 누군가가 작성시 모든 링크에 http://을 추가 할 수있는 방법을 설명 할 수 있습니까?

미리 도움 주셔서 감사합니다.

+1

HTTP를 사용 : URLhelper

이 포함

나는라는 새로운 헬퍼를 만들어이 문제를 해결하기 위해 관리 : //stackoverflow.com/questions/5012188/rails-link-to-exte rnal-site-url-is-attribute-of-users-table-like-users-websit –

+0

check http://stackoverflow.com/questions/5012188/rails-link-to-external-site-url-is-attribute -of-user-table-like-users-websit –

+0

사용자가 모든 URL 앞에'http : // '접두어를 붙이려면 사용자 정의 유효성 검사기를 작성하는 것이 좋습니다. 이 링크는 다음과 같이 도움이됩니다. 1) [http://guides.rubyonrails.org/active_record_validations_callbacks.html#custom-validators] 및 2) [http://stackoverflow.com/questions/161738/what-is-the-best- 정규 표현식에서 문자열로 검사하는 경우 유효한 URL] – Gooner

답변

2

도움 주셔서 감사합니다.

module UrlHelper 
    def url_with_protocol(url) 
    /^http/.match(url) ? url : "http://#{url}" 
    end 
end 

난 후 바로 다음 link_to

<%= link_to url_with_protocol(@link.job_url), :target => '_blank' do %> 

감사에게