복붙노트

[RUBY-ON-RAILS] 레일 - 렌더링 : 대상 앵커 태그에 행동을?

RUBY-ON-RAILS

레일 - 렌더링 : 대상 앵커 태그에 행동을?

그래서 같은 렌더링 사용 찾고 있어요 :

render :action => 'page#form'

나는 또한이 시도 :

render :template => 'site/page#form'

그 중 하나가 작동하지 않았다. 이 특정 페이지의 형태는 맨 아래에 있고, 오류가 제출에 발생하는 경우 사용자가 페이지 상단에 기본값으로 설정하는 내가 싫어. 나는 또한 개체와 그 오류를 유지해야하기 때문에 (재 지정되지 않음) 렌더링 사용해야합니다.

어떻게 특정 앵커 태그를 대상으로 렌더링 할 수 있습니까?

해결법

  1. ==============================

    1.나는 해결책을 찾을 생각합니다. 다른 사람이 이렇게 같은 형태를 가리키는이 문제를 가진 경우 :

    나는 해결책을 찾을 생각합니다. 다른 사람이 이렇게 같은 형태를 가리키는이 문제를 가진 경우 :

    <%= form_tag '/page#form' do %>
    

    문제를 해결 한 것으로 보인다.

  2. ==============================

    2.bobthabuilda의 대답에 빠른 요약, 최근에 그 질문에 인터넷 검색 및 트릭을 얻이 수없는 것 자신과 같은 사람들 그리 밝지 않은 사람들을 위해.

    bobthabuilda의 대답에 빠른 요약, 최근에 그 질문에 인터넷 검색 및 트릭을 얻이 수없는 것 자신과 같은 사람들 그리 밝지 않은 사람들을 위해.

    우선, 레일, 모든 기본 HTML

    에서 추출하면 대상 페이지에 앵커를 추가 할 수있는 옵션을 가지고 있으며, 이것은 당신이 기본적으로이처럼 '행동'속성에 앵커를두고 작동하려면 :

    <form action="/contact#form" method="post">
      ...
    </form>
    

    제출에 그런 식으로, 브라우저는 지정된 앵커에 바로 당신을 던질 것입니다 / 접촉 # 양식 요청을 사용합니다.

    우리가 지금해야 할 것은 단순히 위의 예에서와 같이, 레일이 우리의 양식 태그 올바른 방법을 생성 할 수 있습니다. 이 두 가지 방법으로 우리의 관점을 수정하는 우리를 필요로 할 것이다.

  3. ==============================

    3.바로 이곳에보기를 이동 자바 스크립트를 사용합니다. 그렇지 않으면 할 내가 아는 방법은 없습니다.

    바로 이곳에보기를 이동 자바 스크립트를 사용합니다. 그렇지 않으면 할 내가 아는 방법은 없습니다.

    <script>
      window.location = window.location.href + "#form";
    </script>
    

    테스트되지 않은,하지만 난이 일을한다고 생각합니다.

  4. ==============================

    4.사용 redirect_to는 브라우저 있도록 앵커로 스크롤 헤드 업을 가져옵니다

    사용 redirect_to는 브라우저 있도록 앵커로 스크롤 헤드 업을 가져옵니다

    redirect_to : 행동 => '페이지': 앵커 => '형태'

  5. ==============================

    5.당신은 눈에 거슬리지 jQuery를하고 데이터 속성을 사용할 수 있습니다.

    당신은 눈에 거슬리지 jQuery를하고 데이터 속성을 사용할 수 있습니다.

    내 응용 프로그램의 예를 들어 내가있는 사용자가해야 다른 사람의 사이에서,에 "주소"필드 셋과 큰 형태를 갖는다 :

    물론 그는 내가 다시하지만지도가 표시되는이 주소의 필드 셋에 앵커로 양식을 렌더링 할 "확인"버튼을 안타 후.

    이것은 내 .erb 템플릿입니다 :

    <fieldset id="address" data-preview="<%= params[:preview] ? true : false -%>">    
    <legend>Write you address here, then check it</legend> 
      <div class="field"> 
        <%= f.text_field :address %>
        <input id="preview-button" type="submit" name="preview" value="check">
      </div>
     </fieldset>
    

    [: 미리보기] 체크 버튼을 누르되면 PARAMS을 설정합니다. 내 컨트롤러에서이 같은 행동 모양을 만듭니다

    def create   
      @obj = current_user.objs.new(params[:obj]) 
      if params[:preview] 
        # geocoding code, and then:
        render action: "edit" 
      else
        #...
      end
    end                           
    

    [: 미리보기] 액션 편집이 PARAMS 렌더링됩니다 그래서 여전히 정의하고,이 true로 #address의 FIELDSET의 데이터 미리보기를 설정합니다. 즉, HTML이 라인 렌더링 될 것입니다 :

    지금은 오직 할 필요가있는 자바 스크립트를 통해 데이터 미리보기가 #address 앵커에 충실 이동 창 위치 인 경우 해당 정보를 가져 오는 것입니다. 여기 내 눈에 거슬리지 jQuery 코드는 다음과 같습니다

    $(function() {
      var preview = $("#address").data('preview');
      if (preview == true){
        window.location = window.location.href + "#address";
      }; 
    }); 
    

    그리고 그게 다야!

  6. ==============================

    6.나는 jQuerys이 플러그인을 검증 사용하는 것이 좋습니다 것입니다. 당신은 JQuery와 유효성 검사 플러그인을 사용하여 자신 만의 폼 헬퍼를 구현할 수있는 개체가 유효성을 검사해야 할 어떤 속성에 따라 달라집니다.

    나는 jQuerys이 플러그인을 검증 사용하는 것이 좋습니다 것입니다. 당신은 JQuery와 유효성 검사 플러그인을 사용하여 자신 만의 폼 헬퍼를 구현할 수있는 개체가 유효성을 검사해야 할 어떤 속성에 따라 달라집니다.

    물론 그것은 더 많은 작업이지만, 나는 그것이 미래에 갚을 것이라고 생각합니다.

    응답을 수신 한 후 사용 제출 및 처리 오류 메시지를 ajaxified - 그 이외.

  7. ==============================

    7.당신이 JQuery와 사용하는 경우, 후에 만 ​​렌더링하고 이렇게 적용됩니다 어떤 경우 조건을 만들려고 :

    당신이 JQuery와 사용하는 경우, 후에 만 ​​렌더링하고 이렇게 적용됩니다 어떤 경우 조건을 만들려고 :

    $('#anchor').get(0).scrollIntoView();
    
  8. from https://stackoverflow.com/questions/2068887/rails-render-action-to-target-anchor-tag by cc-by-sa and MIT license