1

나는 레일에서 기존 링크를 여기에 ... hashchange 딥 링크 등을 위해레일 해시에서 링크를 만드는 방법은 무엇입니까? 내 레일 응용 프로그램에서

을 jQuery를 바베큐을 사용하고 있습니다 :

<%= link_to('View on Site ', project_topic_url(@project.id, @topic, :only_path => false),) %> 

나는 밖으로 이메일로 가져옵니다 user_mailer에서이 작업을해야합니다. http://www.site.com/project/1/topic/23

그리고 내가 원하는 것은 : ..

문제는이 생성됩니다 http://www.site.com/#/project/1/topic/23

URL에서 아약스가 될 수있는 해시를 얻는 방법에 대한 아이디어가 있으십니까?

감사합니다.

답변

2

언제든지이 문제를 처리 할 수있는 도우미 메서드를 만들 수 있습니다.

def project_topic_ajax(id, topic) 
    "http://www.site.com/#/project/#{id}/#{topic.name}/#{topic.id}" 
end 

그런 다음 기본 링크 도우미 대신이를 호출하십시오.

업데이트 : 해결책을 찾았습니다.

<%= link_to "View on Site", "##{project_topic_url(@project.id, @topic)}" %> 

깔끔하지만 정확하게 찾고있는 것이 아닙니다. 절대 경로를 들어

, 그것은 (조금 더러운)과 같을 것이다 :

<%= link_to "View on Site", "http://www.site.com/##{project_topic_url(@project.id, @topic)}" %> 
+0

아마도 설정이 있었으면 좋겠습니까? 나는 이것이 꽤 일반적인 요구 사항이라고 생각 하나? – AnApprentice

+0

경로 끝에'# '을 자동으로 추가하는': anchor' 태그가 있습니다. 그 외에도 귀하의 목표를 달성하는 데 도움이 될 수있는 구성 옵션이나 도우미에 대해서는 알지 못합니다. –

+0

감사합니다 척하지만 언급 한 바와 같이 앵커 태그가 다릅니다 – AnApprentice

0
<%= link_to 'View on Site ', [project_topic_url(@project.id, @topic).gsub(/#{project_topic_path(@project.id, @topic)}/, ""), project_topic_path(@project.id, @topic)].joins("#") %> 

그리고 늦게 아마도 도우미

0

비트로 포장하는 것이 좋습니다 거라고; rake routes를 실행, 레일 3.2.8와

MyRails::Application.routes.draw do 
    scope :hash, :path => "/#" do 
    resources :project do 
     resources :topic 
     # ... 
    end 
    # ... 
    end 
end 

을가 원하는 결과를 얻었다 :하지만 당신은 당신의 전체 경로가과 같이 해시 범위에 파일을 포장 할 수있다.

이것이 내 의견이나 jQuery-BBQ에 어떤 영향을 미치는지 확실하지 않습니다.

관련 문제