2009-11-10 6 views
2

보기 내에서 부분을 렌더링하려고합니다. 버튼 MORE를 클릭하면 모든 것이 그대로 유지되어 추가 문자 만 표시됩니다. 내 경우에는 전체 기사.은 link_to 렌더링 sth으로 이어질 수 있습니까?

<%= @article1.content[0..300] + "..." %> 
<%= link_to "more", ....... %> 

나는 올바른 메소가 무엇인지 알지 못합니다. 어떻게 든 버튼을 클릭하면 전체 기사를 보여주는 레일을 설명해야합니다. 어쩌면 내가 방법 LINK_TO를 사용하지 않아야합니다 ..

답변

2

에서 자바 스크립트를 사용하여 전환하여 replys 사전에 감사합니다 당신이 찾고있는 것은 link_to_remote 또는 link_to_function입니다.

link_to_remote는 컨트롤러에서 나머지 기사를 가져오고 RJS를 통해 부분으로 DOM 요소를 바꾸거나 추가합니다. 이를 통해 불필요한 데이터를 최소화하고 자바 스크립트를 사용할 수없는 사용자를 쉽게 처리 할 수 ​​있습니다.

link_to_function을 사용하면 페이지가로드 될 때 전체 기사가 게재되지만 처음 300자를 초과하는 모든 내용은 CSS에 의해 숨겨집니다. 이것은 설정하기는 쉽지만 더 많은 데이터를 보내고, 자바 스크립트가 활성화 된 사용자에게 의존합니다.

소스를 보지 않고 일반 사용자는 두 가지 방법을 구분할 수 없을 것입니다.

당신이 선택하는 것은 당신에게 달려 있습니다. 죄송합니다. 코드 예제를 제공 할 시간이 없지만 인터넷이 가득합니다.

+0

link_to_remote 또한 자바 스크립트에 의존, 그렇게 큰 차이점은 속도입니다) - link_to_function으로는 link_to_remote – tig

+0

보다 적은 것이 사실이지만, HTML 옵션의 HREF 값으로 다시 link_to_remote에게 주어진 URL 옵션을 납품하면 할 수 있습니다 (javascript가 비활성화되어 있어도 링크가 작동합니다.) link_to_remote "More", article_path (@article), : href => article_path (@article) 그런 다음 비활성화 된 자바 스크립트 안전 장치를 완료하려면 컨트롤러가 요청 유형 (js vs html)를 사용하여 부분 또는 전체 페이지를로드합니다. link_to_function은 페이지가로드되면 훨씬 빠르지 만 Javascript가 비활성화되면 죽은 링크를 남기지 않도록 더 많은 작업이 필요합니다. – EmFi

2

, link_to_function을 시도 부분 truncate를 사용하여 전체 텍스트 숨겨진 태그를 삽입, link_to_function

관련 문제