2017-12-24 33 views
2

내 레일 앱에서 사용자가 링크를 추가 할 수있는 페이스 북 프로파일을 추가했습니다. 간단한 텍스트 필드이지만 뷰에 링크가 있어야합니다. .레일즈 외부 URL이 뷰에서 링크로 작동합니다.

는 사용자가 내가 그에 대한 전망에 링크로 표시 할 www.facebook.com/example을 추가하는 경우 예를 들어, 나는 link_to approch을 시도했지만 대신 사용자에 대한 링크를 가리키는의 그것을 프로필 페이지를 새로 고침하십시오.

내가 Y 경우

<%= link_to(@user.fblink) %> 

마이그레이션

class AddFblinkToUsers < ActiveRecord::Migration 
    def change 
    add_column :users, :fblink, :string 
    end 
end 

사용자 컨트롤러 유모차를

def user_params 
    params.require(:user).permit(:description, :avatar, :location, :fblink, :twlink, :ytlink, :username) 
end 
+0

여기에 대해서는별로 중요하지 않습니다. '.fblink' 정의 방법은 무엇입니까? – lurker

+0

코드를 업데이트했습니다. @lurker –

+0

이 작업은 수행 중이거나 수행 중이 지 않은 작업입니다. 그것은 잘못 되었습니까? 보여주는 게 없니? 잘못된 장소에 연결 하시겠습니까? 잘못된 텍스트를 표시 하시겠습니까? 다른 것? –

답변

2

을 시도 것입니다 우리의 형태는 당신이보기에서 다음

#=> helpers/application_helper.rb 
def fb_link(user_fb) 
    link_to "Facebook", "#{url_with_protocol(user_fb)}", class: "your-class", target: "new" 
end 
#=> url helper 
def url_with_protocol(url) 
    /^http/.match(url) ? url : "http://#{url}" 
end 

처럼

= fb_link(@user.fblink) 

또는이

= link_to "Facebook", "#{url_with_protocol(@user.fblink)}", class: "your-class", target: "new" 

희망처럼 작동 할 수 있습니다 링크에 대한 도우미 클래스를 정의하는 작업을 할 수 제대로 다음 데이터를 삽입 도움이

+0

안녕하세요, 작동했는데 문제가 있습니다. 'http : // localhost : 3000/users/www.facebook.com/example'에 연결되었습니다. –

+0

@ NoorAliKhan이 답변을 업데이트했습니다. –

+0

당신은 당신의 이름을 바꿔야합니다. 젠체하는 사람 ... 당신은 천재적 인 괴물이 아닙니다. –

0

시도 <%= link_to 'Facebook', @user.fblink %>

link_to 메서드의 첫 번째 매개 변수는 링크 값을 표시합니다. 이 경우는 Facebook입니다. 두 번째 매개 변수는 url_path입니다. 사용자가 Facebook 링크를 클릭하면 url_path 링크로 연결됩니다. 이 경우는 @user.fblink입니다.

0
의이 http으로 저장되지 않는 한이 링크 전까지대로 작동하지 않습니다

, 당신이 그 일을하기 위해 페이스 북 링크를 원하는 경우, 예를 들어

는 당신이 필요로하는이에 대한 그래서 여기 https://www.facebook.com/example

으로 DB에 저장해야합니다 양식 입력 필드에 jquery form validation :

및 그보기 페이지에서 단순히

내 링크처럼 사용할 수 있습니다 후

01 23,퍼센트 = @ 사용자. @ user.fblink %>

는 완전한 링크가 alredy 데이터베이스에 저장 될 때 link_to 또는 레일 여기에 도우미를보기를 사용하지 않습니다.

<script> 
$("#myform").validate({ 
    rules: { 
    field: { 
     required: true, 
     url: true 
    } 
    }, 
message: { 
    field:{ required: 'fb link can't be blank!', url: 'Please enter valid url'} 
    } 
}); 
</script>