2010-03-04 5 views
0

레일에서 루비를 학습하면서 블로그 사이트를 만들었습니다. ..replace_html이 rjs에서 작동하지 않는 이후의 visual_effect

page.replace_html 'posts', :partial => @posts 
page.visual_effect :Highlight, 'post_' + @post.id.to_s 

그러나, 하이라이트 안될 둘 효과도 숨기기 모든 종류의 수 있습니다 : 사용자가 AJAX를 통해 게시물을 추가하면, 다음과 같은 RJS가 호출되지됩니다.

단서 : 난 그냥 단지 새 게시물에 대한 insert_html 을 (하지만이 시간에 게시물 의 전체 목록을 업데이트 을 원하는)

  • 경우

    • 작동하는지 나는 하드 코드 시퀀스의 다음 ID로 이동하는 ID는 게시물에서 작동하지 않지만 다음 게시물에서는 작동합니다.
    • {예 .. 하드 코드의 post_100가 ... (100)를 제출 100을 선택에는 하이라이트가 101을 제출하지} 경고 'post_'+ @ post.id.to_s이 (post_100 등)
    예상되는 것입니다 것을 보여줍니다

    아이디어 나 디버깅 제안 사항이 있습니까?

    감사합니다, 올랜도

  • +0

    게시물이 추가되면 방화 광 사진과 같은 것을 사용하여 페이지를 검사하여 새 게시물이 들어있는 div의 실제를 확인하십시오. 내 추측으로는 post_100이 아니라 다른 것입니다. –

    +0

    좋은 제안이지만 원하는대로 나타납니다. Firebug가 보여주는 것과 경고가 표시하는 내용이 일치합니다. page.replace_html 'posts', : partial => @posts page.visual_effect : 'post_'+ @ post.id.to_s << ('post_ "+ @ post.id.to_s +"'); "; – Orlando

    +0

    그 경고는 id.to_s가 "100"임을 확인하는 것이지 부분에 id = "posts_100"이있는 것이 아니라는 것을 확인하는 것입니다. 결과를 얻은 후 Firebug 콘솔에서 $ ('posts_100')을 반환합니까? 또는 render_to_string/logger.debug 부분에 올바른 ID가 있는지 확인할 수 있습니다. – wesgarrison

    답변

    0

    당신은 visual_effect 전에 $의 innerHTML ("post_#{@post.id을}") 경고 할 수 있습니다.

    firebug가 visual_effect에 도달하면 오류가 발생합니까?

    visual_effect 행 다음에 알림을 보낼 수 있습니까?

    필요한 js 파일이 포함되어 있습니까?

    +0

    좋은 제안 .. 다른 시각 효과가 작동하기 때문에 필요한 js가 포함되어있을 것입니다. 난 방화범에 아무런 오류를 발견하지 못했고 HTML로 눈에 띄는 부분에는 아무것도 느끼지 못했다. 그러나 나는 경고를 시도하지 않았다. 그러나 마지막 게시물 이후 RJS에 의존하지 않고 다른 아키텍처를 사용하여 모든 작업을 훌륭하게 수행하기로 결정했습니다. – Orlando

    0

    정말 문제에 대한 답변이 아니지만 이후 rjs에 대한 의존도를 줄였습니다. 대신 여기

    http://blog.solnic.eu/2007/10/30/why-javascript-helpers-in-rails-are-evil

    을 설명 패턴을 다음과 같은거야 그리고 지금 모든 효과는 예상대로 작동합니다. 주석이 실제로 여기에서 작동해야했던 동일한 코드를 사용하여 추가되었을 때 나는 효과를 얻었 기 때문에, 어떤 종류의 이상한 연산자 오류가 계속 발생했다는 것을 확신 할 수 있습니다.